每当我尝试从top
或mpstat
这些命令(特别是collectd
服务)中加总CPU利用率百分比时,我无法达到确切的100%CPU利用率。Linux CPU百分比总计不等于100%
例如top
结果从亚马逊EC2测试服务器:
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
有时会报告的特殊情况?
'top'不能准确地报告CPU利用率,因为CPU利用率有多高,这表明运行所有进程需要多少CPU。你可以有超过100%。在此处查看主题:http://superuser.com/questions/174660/why-is-the-cpu-usage-reported-by-top-in-linux-over-100和http://serverfault.com/questions/ 127059/using-top-4-processes-have-100-cpu-how – birryree 2012-08-15 21:18:02
@birryree你是对的。如果你有两个内核,'top'中的总CPU%可能会达到200%。我忘了提及这个测试的VPS,它只有一个核心。然而,在'collectd'中,统计数据会被分割出来。 – Martijn 2012-08-15 21:41:28