我正在为我的应用程序寻找一个性能监视工具,它将实时收集/可视化单个Linux机器上的CPU和缓存使用情况,例如IBM System或HP ProLiant,典型配置为8个处理器/ 80个内核。 应用程序是使用OpenMP的本土多线程C +代码 该监测工具不应每天24小时运行;它不应该发电子邮件通知 我将在向我的应用程序发送命令之前运行此工具,应用程序将执行命令(可能只需要最多几分钟)。在此时间间隔内,我需要分析:
- usage of cores - data movement between processors - usage of L1, L2, L3 caches - some other metrics (help me here) which can help to find bottleneck in application performance and resource utilization
我想像Nagios / Zabbix这样的工具对于这项任务来说太重了 从另一方面使用命令行工具,如“顶部”和“sar”80个核心不是很方便和绘图(不必要的实时)将是很好的...
答案 0 :(得分:2)
虽然获得每个核心的使用相当容易 - 但其他值可能被证明是不实际的,至少没有在某些类型的分析器中运行该应用程序。
如果可能的话,衡量QPI利用率是非常重要的。英特尔的vTune可能只能在运行二进制文件的检测版本时获得此类功能。
同样在x86上,无法找出任何类型的L1,L2,L3使用情况 - 您可以抓住低级CPU计数器来测量缓存未命中(但可能需要使用已检测/配置文件的二进制文件并始终使用像vTune或PAPI这样的东西。
您可以“轻松”设置某些内容,将所有较低级别的性能计数器拉入SNMP并通过标准的SNMP监控工具获取SNMP值,但请注意,SNMP不需要发生超过1次的拉动-2 / s最大或者将该信息提取为collectd
。
我也有一种印象,就是你不了解监控工具的问题领域。它们不能用作寻找应用程序级别/系统瓶颈的低级别分析探测器 - 最多可以获得一些提示,即资源(从10K英尺视图)在完全利用下运行。监控和更改工具是操作人员需要用来了解其IT系统的哪个部分当前使用以及如何收集历史数据和预测未来资源利用以及在出现故障时收到警报的内容。
答案 1 :(得分:0)
SiteScope,Hyperic或shell脚本的任意组合,本机OS实用程序和用于存储结果的DB可以完成这项工作。