Linux CPU百分比不等于100%

时间:2012-08-15 21:12:09

标签: linux cpu-usage collectd

每当我尝试添加来自topmpstat等命令的CPU利用率百分比,特别是collectd服务时,我无法达到100% CPU利用率。

例如来自Amazon EC2上的测试服务器的top结果:

Cpu(s): 13.6%us, 31.6%sy,  0.0%ni, 53.2%id,  0.0%wa,  0.0%hi,  0.0%si,  1.7%st

无论我如何将百分比加起来,我从来都不会获得100%的CPU,当然也没有任何合理的方式。大多数情况下似乎是四舍五入的错误; 100.1%或99.9%,但有时我最终超过110%。这通常发生在steal相对较高时,例如collectd报告的一种情况是〜21.44%的偷窃和~88%的闲置,只有这两种情况已经超过100%。我了解ni(很好)也计入us(用户),所以我不应该添加它,但这仍然无法解决。

有人知道如何添加这些高达100%或如何解释collectd有时会报告的例外情况吗?

2 个答案:

答案 0 :(得分:4)

collectd(以及tophtopvmstat或任何其他此类实用程序)报告一个间隔的平均值,以及内核的性质(来自这些内核)公用事业查询他们的统计数据)一般不使用浮点数学而不一定试图穷尽地解释一切,不能100%准确。有时它会加起来不到100%,有时甚至更多。它不是用于审计,只是用于花费时间的一般指示。

答案 1 :(得分:1)

我确认这与collectd无关,但与内核会计有关。这种不准确性在无人值守系统和/或节流状态下尤为不合理。