TPS低,CPU高--记一次storm压测问题排查过程

实时计算框架选型决策地图:Hadoop、Storm、Spark、Flink、Samza深度对比 实时计算是现代数据架构的核心能力,其本质是时间语义、状态管理与容错机制的协同设计。从批处理(Hadoop)到低延迟流式(Storm),再到统一引擎(Spark)和原生流处理(Flink),不同框架代表差异化的‘时间观’与工程权衡。Hadoop提供高吞吐存储与YARN资源调度基础;Storm以亚毫秒级响应适配事件驱动场景;Spark凭借SQL兼容性与批流双模降低开发门槛;Flink通过精确一次(exactly-once)状态一致性支撑金融级实时风控;Samza则深度绑定Kafka实现轻量状态恢复。技术选型不应 阅读详情


 

一、业务背景+系统架构

       本次场景为kafka+storm+redis+hbase,通过kafka的数据,进入storm的spout组件接收,转由storm的Bolt节点进行业务逻辑处理,最后再推送进kafka。

表数据相关的逻辑为:查询Hbase表数据,首次查询会写入redis和storm cache,再次查询,会直接从redis或cache中取值。

      storm应用:

二、性能测试场景

1.数据:json类型的用户偏好数据700万

2.灌入方式:java脚本

3.hbase表:生产全量数据导入

4.storm集群:5台 (Nimbus+sup01+sup02+sup03+sup04)

三、性能过程截图

三分钟时处理数据量:

storm响应时间(不包含kafka延时)

十三分钟处理数据量:

从stormUI接口估算出的TPS大约为970左右,远没有达到我们业务要求。

四、性能瓶颈分析:

1、直接查看storm应用服务器的情况:

发现 cpu从20%直接到80%

CPU资源显然在user态消耗的更多,判断为用户类进程占用的cpu时间片更多。

2、我们按消耗cpu资源的大小对进程进行排序,抓出最大的进程号16889,然后打印进程下面的线程:

命令:ps -mp pid -o THREAD,tid,time

3.挑出占用cpu时间最高的线程,打印线程栈信息,注意线程id(tid)必须转化成16进制

命令:printf "%x\n" tid

          jstack pid |grep tid -A 30

此处不逐一举例线程信息,Niubus主机和其他从机都需选取一些线程进行打印,发现耗时长的线程大部分都处于Blocked状态,线程状态为执行getcontentmodelscore方法。

检查getcontentmodelscore这部分代码:

发现这部分代码逻辑为从Hbase中获取得分数据和推荐商品数据,判断为hbase性能不佳引起的性能低下,由于PRE环境HBASE条件有限,没有监听端口,也无权限进行配置优化,此问题暂时没有进一步解决方案。

 

五、第二种排查方案:

由于stormUI提供了可视化的界面,我们可以点开处理时间长的bolt下找到对应的端口号:

 

 

在host一栏查到对应的机器地址,通过Jps -m |grep 命令找到对应的进程号,此方法适用于多个业务系统公用一个集群,需要快速定位Pid的时候。

六、附redis监控:

在redis工具中敲入info,查看连接数和使用内存。

由于redis是在内存中运行,不需要考虑命中率;redis单线程运行,如果redis查得慢的话基本可能是一次获取的数据太多了或者程序逻辑不对,不需要考虑慢查询。对于redis,只要不一次获取太多的Key-value,基本不会出现性能问题。

 七、strorm worker executor配置问题:

storm中worker代表了进程,比如配置10个worker,5台机器,每个机器会均衡分配2个worker,executor代表线程数,对于每个Bolt,spout节点都可增大减小线程数,达到最佳的处理数据效率。

在本次压测时,10个worker配置了100个线程数,发现性能远不如10个worker配置60个线程,对于kafka,我们知道,一个kafka分区只需对应一个线程,多配置的线程也会处于闲置状态,但并没出现由于多配置线程儿造成的性能降低。而对于storm,对于多配置的线程,反而出现了性能的严重降低。此问题暂时未知道具体原因。

分类:  性能测试
大数据框架选型实战:从Hadoop到Flink的生产决策指南 大数据处理框架并非简单的性能参数对比,而是面向实时性、一致性、运维成熟度等多维约束的系统工程。理解流式计算(如Flink低延迟状态管理)、批处理(如Hadoop MapReduce容错设计)与混合架构(如Spark Structured Streaming+MySQL CDC)的本质差异,是构建高可用数据系统的前提。技术价值体现在能否支撑毫秒级风控、分钟级报表、TB级归档等差异化SLA;典型场景包括电商订单实时防超卖、IoT时序数据分析、金融高频事务处理等。本文基于12个跨行业落地项目经验,聚焦Hadoop 阅读详情

相关推荐

中间件实战指南:从核心原理到微服务架构落地

在分布式系统架构中,中间件作为连接操作系统与业务应用的关键基础设施,其核心价值在于通过标准化组件解决通信、集成与数据管理等共性问题。从技术原理上看,中间件通过解耦业务逻辑与横切关注点,实现了技术栈标准化与能力复用,从而提升系统的吞吐量、稳定性与开发效率。在工程实践中,消息队列(如Kafka、RocketMQ)和缓存(如Redis)等核心组件,分别通过异步解耦与内存加速机制,支撑了高并发场景下的数据流转与访问性能。针对缓存穿透、击穿、雪崩等经典问题,需结合布隆过滤器、分布式锁及过期时间随机化等策略进行防护。本

chongyuwan4121的博客 469

jmeter压测期间tps骤降(jvm参数)

1、jmeter压测期间出现tps骤降,压测执行几分钟以后,tps从1300将到850左右,经分析,是由于jvm日志参数设置太小导致tps出现骤降。

小小董的博客 1796

现代数据工程师必掌握的5大核心大数据框架

大数据框架是构建可扩展、高可靠数据基础设施的基石。从分布式存储(HDFS)到实时消息管道(Kafka),再到批流一体计算引擎(Spark/Flink)和统一SQL层(Hive),这些技术共同定义了数据处理的底层语义与工程边界。其核心价值在于支撑PB级数据规模下的低延迟、强一致性与可运维性,广泛应用于实时推荐、用户行为分析、风控建模与电商大屏等关键场景。本文聚焦Apache Spark、Flink、Kafka、Hive和Hadoop五大工业级框架,深入解析其在真实生产环境中的关键配置、性能命门与典型故障模式,

dielucui7698的博客 603

压测tps很低并且呈下降趋势,原因解析

压测tps很低并且呈下降趋势,原因解析

一纸书笺 1万+

Hadoop生态全景解析:从HDFS/YARN到Spark/Flink的工程本质

分布式数据处理是现代大数据平台的核心能力,其底层依赖于可靠的分布式存储与智能资源调度。HDFS通过多副本与心跳机制实现统计级高可用,YARN解耦计算与存储资源,为Spark、Flink等引擎提供统一调度基础。MapReduce定义了‘移动计算而非数据’的范式,Spark以内存计算优化迭代任务,Flink则通过事件时间与状态管理实现真正流批一体。HBase弥补HDFS随机读写短板,Kafka承担高吞吐数据管道角色,Hive作为SQL翻译层降低使用门槛。这些组件并非孤立工具,而是围绕数据生命周期协同演进的有机系

weixin_33912453的博客 389

Spark、Flink、Kafka、Hive、Trino:生产级数据栈协同原理与避坑指南

在现代大数据架构中,批处理、实时计算、消息传输、元数据管理与跨源查询并非孤立技术,而是紧密耦合的系统能力。Apache Spark提供统一编程模型支撑ETL与机器学习,Flink以事件时间语义保障毫秒级实时性,Kafka作为流式存储底座承载高吞吐数据流动,Hive演进为湖仓一体的元数据中枢,Trino则实现免移动数据的联邦查询。这些框架的技术价值不在单点性能,而在于协同时的数据一致性、运维可控性与团队可维护性。本文聚焦真实生产环境中的参数调优、状态管理、分区设计、ACID事务及Connector配置等关键实

weixin_30443075的博客 624

压力测试tps性能下降问题解决方案

压力测试tps性能下降问题解决方案 背景 测力测试时反映tps一直下滑的问题,为了重现该问题,开发一个简单交易进行测试,测试代码如下   录制该交易脚本,并放在LoadRunner11中进行测试,场景为10个用户同时启动并持续的跑。可以看到1分钟之后tps开始下降,并在后期持续下降。   此时分析服务端日志、javacore、heapdump、gc等,并未发现异常现象。修改服务

李小佳的博客 2万+

中间件技术全解析:从核心原理到高并发场景实战应用

在分布式系统与微服务架构中,中间件作为连接操作系统与应用软件的关键层,提供了通信、集成、数据管理等通用服务,是构建高可用、可扩展系统的技术基石。其核心原理在于通过抽象和标准化,将横跨多个应用的共性能力(如异步消息传递、数据缓存、安全认证)封装为可复用组件,从而让开发者能聚焦业务逻辑创新。这一设计带来了显著的技术价值:它实现了系统间的解耦,提升了开发效率,并保障了大规模分布式环境下的可靠性与性能。在应用场景上,中间件广泛应用于高并发请求处理、实时数据管道构建、服务治理与安全防护等领域。例如,Apache Ka

436

TPS 比较低,可能是什么原因造成的?

TPS比较低什么原因造成

qq_45376215的博客 995

高德地图与CAD图叠加显示方法汇总及优缺点分析

高德地图应用在许多领域,平常我们用的地图导航,除过正常的地图导航指引功能之外,其实还有很多实用的功能。如高德影像地图应用在包括地理、土地测量、水文学、生态学、气象学以及海洋学等方面。AutoCAD在行业中常用于城市规划、平面设计、建筑师等,这其中也要用到高德地图。最常见的是CAD图与高德地图叠加使用,通过两者叠加直观显示,助力行业提高工作效率。那如何将高德地图与CAD图叠加显示呢?下面听小编把方法一一介绍下以及各种方法的优缺点。

vjmap的博客 2728

迪文DGUSII串口屏中文显示实战:手把手教你制作16x16点阵字库

本文提供了一份迪文DGUSII串口屏16x16点阵中文字库制作的完整实战指南。从显示原理、字体选择与参数设置,到使用FontLib Make工具生成字库文件,再到部署、调用及存储空间优化,手把手教你解决中文显示难题,确保界面文字既美观又稳定。

weixin_29190573的博客 156

Storm 集群监控报警-问题排查记录

Storm 集群监控报警-问题排查记录 1. 问题一、cpu繁忙 1.1. 报警信息 PROBLEM P0 Endpoint:xxx Metric:cpu.idle Tags: all(#3): 12.84751⇐20 Note:cpu繁忙 Max:3, Current:1 Timestamp:2016-07-27 15:10:

scl1991的专栏 1711

用VINS-Fusion跑通EuRoC数据集:Ubuntu22.04+ROS2环境下的保姆级评测指南

本文详细介绍了在Ubuntu22.04和ROS2 Humble环境下使用VINS-Fusion处理EuRoC数据集的完整流程。从环境配置、数据集转换到参数调优和性能评估,提供了一套全面的多传感器融合分析方案,帮助开发者在无人机精准定位场景中实现高效部署与优化。

weixin_29212867的博客 518

Apache Storm实时计算框架核心原理与调优实践

实时计算作为大数据处理的关键技术,通过流式处理模型实现毫秒级延迟的数据分析。其核心原理基于分布式架构和消息传递机制,采用主从式设计确保高可用性,通过有向无环图(DAG)组织数据处理流程。在技术价值层面,实时计算框架相比批处理能更快响应业务变化,特别适合金融风控、物联网数据处理等时效性敏感场景。Apache Storm作为代表性开源框架,通过独特的ACK机制保障消息可靠性,支持Kafka等消息队列深度集成。在工程实践中,合理的并发度设置、序列化优化和资源监控是提升吞吐量的关键,典型应用包括电商实时统计和在线推

weixin_33806300的博客 512

从0开始写Vue项目-环境和项目搭建

什么是VueVue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)2.介绍与描述动态构建用户界面的渐进式JavaScript框架作者:尤雨溪3.Vue的特点遵循MVVM模式编码简洁,体积小,运行效率高,适合移动/PC端开发它本身只关注UI,可以引入其它第三方库开发项目4.与其他JS框架的关联借鉴 Angular 的模板和数据绑定技术借鉴 React 的组件化和虚拟DOM技术5.Vue周边库vue-cli:vue脚手架axios。

不愧是暮言的博客 1484

数字电路逻辑与设计实验三 译码器和数据选择器

1. 译码器功能测试 将 74LS139 按图 3.1 接线,按表 3.2 输入电平分别置位,填输出状态表。 2. 译码器转换 将双 2-4 线译码器转换为 3-8 线译码器。 (1)画出转换电路图。 (2)在实验箱上接线并验证设计是否正确。 (3)设计并填表写该 3-8 线译码器功能表,画出输入、输出波形。 3. 数据选择器的测试及应用 (1) 将双 4 选 1 数据选择器 74LS153 参照图 3.2 接线,测试其功能并填写功能表 3.3。 (2)将实验箱脉冲信号源中固定连续脉冲 4 个不

欢迎交流学习心得 3088

Storm平台监控方案[ 上 ]

监控的初衷        社区版的storm除去storm UI可以提供一点信息外,实际上任务完全运行在一个黑盒子里,不仅不知道任务的运行情况,即使任务有问题时也无法及时通知用户来处理,事后排查问题又非常困难。为了解决这些问题,需要把任务运行的情况掌握起来。   监控的维度 任务维度监控  组件处理耗时,单位:毫秒  任务组件tps  worker处理耗时,单位:毫秒  wo...

专注互联网后端技术 614

【通信协议】GATT 与 BLE HID 工作原理详解

详细介绍BLE HID 跟GATT工作原理与两者的交互关系

以实战经验介绍行业知识 846

生产者消费者问题:高并发系统稳定性核心原理与实战

生产者消费者问题本质是多线程/多进程协作中数据流节奏失衡引发的系统性风险,其底层原理在于缓冲区容量、处理速率差与背压机制三者的动态博弈。该模型直接决定消息队列吞吐、线程池稳定性、实时服务延迟等关键技术指标,广泛应用于订单系统、IoT数据采集、风控引擎等高并发场景。理解其在Java阻塞队列、Kafka offset管理、Disruptor环形缓冲区中的差异化实现,是构建可监控、可降级、可伸缩分布式系统的前提。本文聚焦真实线上问题——如无界队列导致OOM、notifyAll引发唤醒风暴、消费者CPU 100%实

weixin_34067102的博客 664

手把手教你学SIMULINK模块库文件专栏-From Workspace 模块详解

模块是 Simulink 中的一个信号源模块,用于从 MATLAB 工作区加载数据作为输入信号。该模块允许用户将预先在 MATLAB 中生成的数据(如时间序列、矩阵或结构体)导入到 Simulink 模型中,从而实现更灵活的信号输入和仿真控制。通过深入了解其参数的影响及结合 MATLAB 脚本的应用,读者可以更加有效地利用这一模块进行仿真和研究。此外,通过实际应用场景的扩展以及常见问题解答部分的帮助,能够更好地掌握。模块是一个非常灵活的工具,适用于需要从 MATLAB 工作区加载数据的各种场景。

MHD0815的博客 636

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8289

算法工程化:从教科书到高并发生产环境的落地实践

算法不是抽象的时间复杂度公式,而是需与数据结构、并发模型、硬件特性深度耦合的工程契约。理解其底层原理(如哈希冲突机制、递归栈空间约束、缓存行对齐影响)是规避线上故障的前提;技术价值在于将理论性能指标(O(n)、误判率p)转化为可观测、可压测、可运维的系统能力;典型应用场景涵盖高并发ID生成、海量数据去重、实时排行榜、路径规划与配置热更新;本文聚焦时间复杂度实测与边界条件防御两大核心热词,通过真实故障复盘与三道现实滤网(数据规模、环境噪声、运维可观测),推动算法从LeetCode习题走向可交付的生产级思维操作

weixin_33785108的博客 308

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

机器学习模型上线后失效的五大集成陷阱与银行级治理实践

机器学习模型部署不是算法落地的终点,而是系统性工程挑战的起点。在金融等强监管行业,模型健康度高度依赖数据流稳定性、特征契约一致性、服务可观测性及自动化治理能力。本文聚焦生产环境中最常被忽视的集成层风险——如特征时效性幻觉、数据契约漂移、重试风暴、降级路径失效和可观测性盲区,并结合银行真实故障案例,解析如何通过契约化校验、混沌工程验证、多维信号监控与决策溯源链构建,实现从‘能跑通’到‘可信赖’的跃迁。关键词涵盖模型可观测性、特征契约、ML系统集成。

weixin_30832405的博客 389

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大数据架构演进:从MPP到Lakehouse的技术选型指南

大数据架构是处理海量数据的核心技术框架,其核心原理是通过分布式计算和存储实现水平扩展。随着技术演进,从早期的MPP架构到如今的Lakehouse架构,大数据处理能力不断提升。MPP架构采用无共享设计,适合结构化数据分析;Lambda架构通过批流双管道保证数据一致性;Kappa架构则简化流程,主张单一流处理管道;而Lakehouse架构融合了数据湖的灵活性与数据仓库的管理能力。这些架构在金融风控、电商分析、IoT等场景中发挥着重要作用。合理选择架构可以显著提升数据处理效率,降低运维成本,例如某零售企业迁移到L

weixin_30323631的博客 425

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Storm实战常见问题及解决方案
下一篇: 三个实例演示 Java Thread Dump 日志分析
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值