Storm UI性能监测,工具:Monit、nmon、Zabbix、Storm-Benchmark
性能监测
1)工具的使用
d)性能高估的两大利器就是Benchmark和Profile工具
a)在架构层面:perf、nmon等工具和命令;
b)在JVM层面:btrace、Jconsole、JVisualVM、JMap、JStack等工具和命令;
c)在Spark、Storm系统层面:web ui、console log,也可以修改源码打印日志进行性能监控。
参考原文:https://blog.csdn.net/csdn_wangqi/article/details/53377657
如何找到Topology的性能瓶颈?
除了通过系统命令查看CPU使用,jstack查看堆栈的调用情况以外,还可以通过Storm自身提供的信息来对性能做出相应的判断。
Storm UI
UI界面解析:
利用Storm-rest-API提供的地址 xxxxx/api/v1/topology/ (GET)
可以获取到json数据:
https://www.malinga.me/reading-and-understanding-the-storm-ui-storm-ui-explained/
https://blog.csdn.net/levy_cui/article/details/71424560
http://storm.apache.org/releases/2.2.0/STORM-UI-REST-API.html
性能指标
在Storm 的UI中,对没过topology都提供了相应的统计信息,其中有三个参数对性能来说参考意义比较明显,包括Execute latency,Process latency和Capacity。
·Execute latency:消息的平均处理时间,单位是毫秒。
·Process latency:消息从收到到被ack掉所花费的时间,单位为毫秒。如果没有启用Acker机制,那么Process latency的值为0。
·Capacity:计算公式为Capacity = Bolt 或者 Executor 调用 execute 方法处理的消息数量 × 消息平均执行时间/时间区间。如果这个值越接近1,说明Bolt或者 Executor 基本一直在调用 execute 方法,因此并行度不够,需要扩展这个组件的 Executor数量。
- Execute latency,Process latency是处理消息的时效性,而Capacity则表示处理能力是否已经饱和。从这3个参数可以知道Topology的瓶颈所在。
监测工具
ganglia
ganglia3.6.1+jmxtrans+strom-0.9.4集成:
https://blog.51cto.com/chengyanbin/1653572
使用ganglia监控storm集群:
http://www.dengb.com/xtzh/977459.html
Monit
Storm之——使用Monit监控Storm
转载请注明出处:https://blog.csdn.net/l1028386804/article/details/89165346
nmon
Nmon是一款计算机性能系统监控工具,在做性能测试的时候,需要监控服务器的资源情况,而大多数服务器是Linux系统。
参考:https://www.cnblogs.com/qgc1995/p/7523786.html
参考:https://www.cnblogs.com/simeone/p/4026173.html
下载与配置
官方下载链接:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
https://sourceforge.net/projects/nmon/files/latest/download
解压到服务器中即可,解压出来的几个文件是不同操作系统版本的nmon。
在nmon6d目录中,可以找到nmon_x86_64_centos6这个文件,并对它添加执行权限
[qgc@localhost nmon16d]$ chmod +x nmon_x86_64_centos6
再把该程序文件加入环境变量运行目录,如果不是管理员,需要加上sudo命令
[qgc@localhost nmon16d]$ mv nmon_x86_64_centos6 /usr/local/bin/nmon
mv: cannot move `nmon_x86_64_centos6' to `/usr/local/bin/nmon': Permission denied
[qgc@localhost nmon16d]$ sudo mv nmon_x86_64_centos6 /usr/local/bin/nmon
[sudo] password for qgc:
[qgc@localhost nmon16d]$
运行与使用
输入nmon命令启动Nmon
在启动后的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据
数据采集:性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来。
如每隔5秒采集一次,一共采集12次,就是1分钟的数据(生成的文件已标红):
[qgc@localhost nmon16d]$ nmon -f -s 5 -c 12 -m /home/qgc/Desktop/
[qgc@localhost nmon16d]$ nmon -f -T -s 5 -c 12 -m /home/qgc/Desktop/
[qgc@localhost Desktop]$ ls
lmon16g.c localhost_180827_2318.nmon nmon16d_x86.tar.gz
localhost_180827_2317.nmon nmon16d Test
数据采集完毕后,如需关闭nmon进程,需要获取nmon的pid(已标红)
[qgc@localhost Desktop]$ ps -ef | grep nmon
qgc 4455(pid) 4349(ppid) 0 23:40 pts/0 00:00:00 nmon
qgc 4491 4429 0 23:40 pts/1 00:00:00 grep nmon
再安全杀掉该进程:kill -9 pid
[qgc@localhost Desktop]$ kill -9 4455
[qgc@localhost Desktop]$ ps -ef | grep nmon
qgc 4493 4429 0 23:40 pts/1 00:00:00 grep nmon
nmon命令:
参考https://www.cnblogs.com/iclk/p/4456311.html
数据分析nmon analyser
下载与使用
下载:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser
在windows上下载后解压,有word和exce两个文档,Word是说明文档,包括更新日志,详细参数等,其中的Excel就是nmon analyser工具了。
成功打开nmon analyser后,点击Analyze nmon data按钮,选择nmon数据文件,会再次提示另存为,选择地址保存即可。
nmon analyser 参数详解
参考:https://blog.csdn.net/he_jian1/article/details/41039709
参考:https://blog.csdn.net/Aisry/article/details/107987390
Zabbix
参考:https://www.cnblogs.com/clsn/p/7885990.html#auto-id-1
待续
Benchmark
参考:https://www.cnblogs.com/aibabel/p/10950402.html
Benchmark:基准测试程序
可以分为**微基准测试程序(microbenchmark)**和宏基准测试程序
性能测试,主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。
性能调优的两大利器是Benchmark和profile工具。
Benchmark用压力测试挖掘整个系统的性能状况,而profile工具最大限度地呈现系统的运行状态和性能指标,方便用户诊断性能问题和进行调优。
Benchmark的运用
Benchmark的运用
1、Hibench:由Intel开发的针对Hadoop的基准测试工具,开源的,用户可以到Github库中下载
https://github.com/quanenmin/HiBench
2、Berkeley BigDataBench:随着Spark的推出,由AMPLab开发的一套大数据基准测试工具,官网介绍
3、Hadoop GridMix:Hadoop自带的Benchmark,作为Hadoop自带的测试工具使用方便、负载经典,应用广泛
4、Bigbench:由Teradata、多伦多大学、InfoSizing、Oracle开发,其设计思想和利用扩展具有研究价值,可以参阅论文Bigbench:Towards an industry standard benchmark for big data analytics。
5、BigDataBenchmark:由中科院研发,官方介绍
6、TPC-DS:广泛应用于SQL on Hadoop的产品评测
7、其他的Benchmark:Malstone、Cloud Harmony、YCSB、SWIM、LinkBench、DFSIO、Hive performance Benchmark(Pavlo)等等
例如:
Spark性能测试工具
•Spark性能测试基准程序Benchmark
–https://github.com/intel-hadoop/HiBench
•Spark性能测试与分析可视化工具
–https://github.com/zhihuili/Dew
参考:
作者:严国华
链接:https://www.jianshu.com/p/4bada19ddd70
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Hibench测试分类
参考:https://blog.csdn.net/weixin_30588729/article/details/96919661
https://blog.csdn.net/wangyaninglm/article/details/52901301
HiBench共计19个测试方向,可大致分为6个测试类别:分别是micro Benchmarks,ml(机器学习),sql,graph,websearch和streaming。
Hibench 包含9个典型的hadoop负载(micro benchmarks,hdfs benchmarks,web search bench marks,machine learning benchmarks和data analytics benchmarks)
Storm-Benchmark
https://github.com/intel-hadoop/storm-benchmark
https://github.com/bitted/storm-benchmark
雅虎的流基准测试
https://github.com/yahoo/streaming-benchmarks