博客
关于我
Storm性能监测工具:Monit、nmon、Zabbix、Storm-Benchmark
阅读量:292 次
发布时间:2019-03-03

本文共 2551 字,大约阅读时间需要 8 分钟。

Storm性能监测工具:nmon、Zabbix

Storm性能监测是保障其稳定运行和高效处理的关键环节。本文将详细介绍 Storm性能监测的两大利器:nmon 和 Zabbix,并探讨如何通过这些工具找到 Storm拓扑的性能瓶颈。

nmon:性能监控工具

nmon 是一款功能强大的性能监控工具,广泛应用于 Linux 系统的资源监控。它支持多种监测指标,能够帮助管理员全面了解服务器的资源使用情况。在 Storm 集群中,nmon 可以实时采集 CPU、内存、磁盘等资源的使用数据,为性能分析提供重要依据。

nmon 的下载与配置

nmon 的官方下载链接为:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download

解压后,进入 nmon6d 目录,可以找到适用于 CentOS 6 的 nmon_x86_64_centos6 文件。为了确保程序的执行权限,需要执行以下命令:

chmod +x nmon_x86_64_centos6

如果是普通用户,运行时需要使用 sudo:

sudo mv nmon_x86_64_centos6 /usr/local/bin/nmon

nmon 的运行与使用

启动 nmon 的方式非常简单,直接输入命令:

nmon

在交互式窗口中,可以通过快捷键查看不同的资源统计数据。例如,? 按钮可以显示帮助信息,1键可以切换为单线程模式。

数据采集方面,建议根据测试场景的需求设置合适的时间间隔。例如,以下命令可以采集 1 分钟的数据,每隔 5 秒采集一次:

nmon -f -s 5 -c 12 -m /path/to/save

数据采集完成后,使用 ps -ef | grep nmon 可以查找 nmon 进程的 PID,并使用 kill -9 PID安全终止进程。

Zabbix:全面的监控解决方案

Zabbix 是一个功能强大的网络监控工具,支持多种协议和平台,包括 Storm 集群。通过 Zabbix,可以对 Storm 的资源使用情况、拓扑状态以及各个节点的性能指标进行实时监控。

Zabbix 与 Storm 集成

Zabbix 与 Storm 的集成通常需要依赖 ganglia 或其他监控工具。例如,ganglia3.6.1 与 jmxtrans 结合可以实现 Storm 集群的监控。此外,Zabbix 的灵活配置选项使其能够适应不同的 Storm 环境。

Zabbix 的使用场景

Zabbix 的优势在于其支持的丰富监控指标和灵活的报警机制。在 Storm 集群中,可以通过 Zabbix 监控以下关键指标:

  • CPU 使用率:监控每个节点的 CPU 负载,发现过载情况。
  • 内存使用情况:跟踪内存使用趋势,避免内存不足或溢出的风险。
  • 磁盘 I/O:实时监控磁盘读写速度,排查存储性能问题。
  • Storm 组件状态:监控 Storm 的各个组件(如 Supergroup、Bolt、Spout 等)的运行状态。

Benchmark:性能测试的基石

Benchmark 是性能测试领域的重要工具,用于评估系统的负载能力和性能极限。在大数据领域,Benchmark 工具如 Hibench、Berkeley BigDataBench 等,提供了丰富的测试场景和模板。

Benchmark 的分类

HiBench 是一个广泛使用的 Hadoop 基准测试套件,涵盖了多个关键测试方向,如:

  • 微基准测试(microbench):衡量单次操作的性能。
  • 机器学习测试(ml):评估机器学习模型的训练效率。
  • SQL 测试(sql):测量 SQL 查询的执行速度。
  • 图数据库测试(graph):评估图数据库的处理能力。
  • 网络搜索测试(websearch):测试搜索引擎的效率。
  • 流处理测试(streaming):分析流数据的处理能力。

Storm-Benchmark 的应用

对于 Storm 集群,Benchmark 工具可以帮助评估其处理能力和吞吐量。例如,以下工具提供了 Storm 性能测试的解决方案:

这些工具提供了详细的测试场景和数据分析功能,能够帮助管理员发现性能瓶颈并进行优化。

雅虎的流基准测试

雅虎开发的流基准测试工具专注于流数据处理的性能评估。该工具涵盖了 Storm、Flink、Spark 等流处理框架的测试场景,提供了详细的性能对比报告。

测试工具的特点

  • 模块化设计:支持多种流处理框架和测试场景。
  • 自动化报告:生成详细的测试报告,包括吞吐量、延迟等关键指标。
  • 开源社区支持:拥有活跃的开源社区,提供丰富的文档和技术支持。

通过这些工具,可以全面评估 Storm 的性能表现,发现潜在的性能瓶颈,并根据测试结果进行优化。

性能监测的关键指标

在 Storm 的 UI 中,提供了丰富的性能指标,主要包括以下三个关键参数:

  • Execute latency:消息的平均处理时间(单位:毫秒)。

  • Process latency:消息从接收到 ACK 的时间(单位:毫秒,若未启用 Acker 机制,值为 0)。

  • Capacity:衡量处理能力的指标,计算公式为:

    Capacity = (Bolt 或 Executor 调用 execute 的消息数量) × (平均执行时间 / 时间区间)

    当 Capacity 接近 1 时,表明 Bolt 或 Executor 的 execute 方法被频繁调用,可能需要扩展 Executor 数量。

  • 这些指标共同反映了 Storm 拓扑的处理效率和性能状态,为性能监测和优化提供了重要依据。

    总结

    通过合理运用 nmon、Zabbix 等工具,可以全面监控 Storm 集群的资源使用情况和性能状态。Benchmark 和 Profile 工具则为性能测试提供了强有力的支持。对于 Storm 性能监测和优化,建议结合工具监控和手动分析,定期进行性能测试和调整,以确保 Storm 集群的高效稳定运行。

    转载地址:http://smel.baihongyu.com/

    你可能感兴趣的文章
    Openlayers实战:绘制带箭头的线
    查看>>
    Openlayers实战:绘制点、线、圆、多边形
    查看>>
    Openlayers实战:绘制矩形,正方形,正六边形
    查看>>
    Openlayers实战:自定义放大缩小,显示zoom等级
    查看>>
    Openlayers实战:自定义版权属性信息
    查看>>
    Openlayers实战:输入WKT数据,输出GML、Polyline、GeoJSON格式数据
    查看>>
    Openlayers实战:选择feature,列表滑动,定位到相应的列表位置
    查看>>
    Openlayers实战:非4326,3857的投影
    查看>>
    Openlayers高级交互(1/20): 控制功能综合展示(版权、坐标显示、放缩、比例尺、测量等)
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(11/20):显示带箭头的线段轨迹,箭头居中
    查看>>
    Openlayers高级交互(12/20):利用高德逆地理编码,点击位置,显示坐标和地址
    查看>>
    Openlayers高级交互(13/20):选择左右两部分的地图内容,横向卷帘
    查看>>
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(18/20):根据feature,将图形适配到最可视化窗口
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    Openlayers高级交互(2/20):清除所有图层的有效方法
    查看>>