我用snmp来监视我的cisco路由器的cpu加载,但是这个数字与show proc cpu history的输出有很大的不同。 当sh告诉我cpu加载是7x%时,snmp只能得到2x%。 哪个数字的准确性比另一个更高?
不同之处在于不同的平均方式和不同的采样周期。
一些背景(我写的命令):
这个命令的意图是用来查找CPU使用率的模式,帮助暂时性的问题与CPU峰值的相关性(特别是CPU峰值和as5800系列的呼叫率控制错误)。
“show proc cpu history”绘制了从IOS的“核心”获得的5秒CPU值。
在过去的60秒内,这是准确的,但要记住每5秒更新一次。 由于运行到IOS的完成性质,这将是相当尖锐和不可预测的。
每60秒钟之后,从收集的数据中计算平均值,并将其存储为60分钟graphics中的数据点。
60分钟后,计算平均小时图,并存储在72小时图中。
计算平均值的方式意味着必定有差异。 但是,它使用很less的内存或CPU开销来维护数据。 鉴于命令必须在最小的路由器和线路卡上运行,这比准确性更重要。
'show proc cpu history'可显示一分钟,一小时或72小时历史( http://www.cisco.com/en/US/products/sw/iosswrel/ps1828/products_tech_note09186a00800a65d0.shtml#showprochistory )
Cisco的OID显示5秒,1分钟或5分钟的繁忙百分比间隔( http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a0080094a94.shtml#topic1 )。
区别可能是正在使用的间隔时间。
在很大程度上,这并不重要。 一个给你一个号码,一个给你附近的另一个号码。 使用SNMP进行graphics和收集,不要过多担心“实际的实际保证使用情况”。 这很可能是由于不同的采样间隔,以及实际上不可能获得瞬时速率(即在任何特定的时间片中,CPU为100%或0%)。