每当我尝试添加来自top
或mpstat
等命令的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
有时会报告的例外情况吗?
答案 0 :(得分:4)
collectd
(以及top
,htop
,vmstat
或任何其他此类实用程序)报告一个间隔的平均值,以及内核的性质(来自这些内核)公用事业查询他们的统计数据)一般不使用浮点数学而不一定试图穷尽地解释一切,不能100%准确。有时它会加起来不到100%,有时甚至更多。它不是用于审计,只是用于花费时间的一般指示。
答案 1 :(得分:1)
我确认这与collectd无关,但与内核会计有关。这种不准确性在无人值守系统和/或节流状态下尤为不合理。