博客
关于我
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/

    你可能感兴趣的文章
    Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
    查看>>
    Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
    查看>>
    Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
    查看>>
    Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
    查看>>
    Mysql学习总结(78)——MySQL各版本差异整理
    查看>>
    Mysql学习总结(79)——MySQL常用函数总结
    查看>>
    Mysql学习总结(7)——MySql索引原理与使用大全
    查看>>
    Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
    查看>>
    Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
    查看>>
    Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
    查看>>
    Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
    查看>>
    Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
    查看>>
    Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
    查看>>
    Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
    查看>>
    Mysql学习总结(9)——MySql视图原理讲解与使用大全
    查看>>
    MySQL学习笔记十七:复制特性
    查看>>
    Mysql学习第一课-mysql的定义及sql语句
    查看>>
    mysql安全模式: sql_safe_updates
    查看>>
    mysql安装,卸载,连接
    查看>>
    MySQL安装之没有配置向导
    查看>>