尝试在我的服务器上绘制 CPU 负载,使用以下硬件:ProLiant DL360p Gen8(在 ProLiant DL360 G7 上的行为相同)。
该机器正在运行VMWare ESXi5.1
为了创建 CPU 峰值,我运行了dd if=/dev/zero of=/dev/null
,并且我知道 CPU 已超载,因为我可以在 vCenter 上显示的图表中看到相关的峰值。
但是,运行这个 snmpwalk:
snmpwalk -v 1 -c ******** 192.168.MY_IP 1.3.6.1.2.1.25.3.3.1.2
显示以下结果:
iso.3.6.1.2.1.25.3.3.1.2.1 = INTEGER: 3
iso.3.6.1.2.1.25.3.3.1.2.2 = INTEGER: 2
iso.3.6.1.2.1.25.3.3.1.2.3 = INTEGER: 2
iso.3.6.1.2.1.25.3.3.1.2.4 = INTEGER: 3
我是不是没有查看正确的 MIB?我应该将它们乘以一个常数吗?
顺便说一句,使用 HP Agentless Monitoring,我能够获得一些 CPU 统计数据,但不是我想要的,至少我费尽心思也没找到这些 MIB。
答案1
答案2
Vmware 不会收集这些信息,而且它确实没有很好的方法来收集这些信息。问题是它无法知道你什么时候会询问——所以为了使它工作,它必须总是计算过去 60 秒的平均就绪时间。由于您可能现在询问,然后一秒钟后询问,因此它必须正确计算 40 秒前的 CPU 时间,以用于两个间隔。这确实是一件丑陋而复杂的事情。
支持这一点会增加很高的成本,因为 SNMP 代理必须不断探测 CPU 使用率并更新同时运行的多个间隔。