每当我尝试计算类似于
例如,在Amazon EC2上的测试服务器中,
无论如何计算百分比,我似乎从未真正达到100%的CPU占用率,通常看起来像是舍入误差; 100.1%或99.9%,但有时我会得到超过110%的结果。这通常发生在
有人知道如何将这些总和加起来达到100%,或者如何解释
top
或mpstat
以及特别是collectd
服务的CPU利用率百分比时,我无法得到确切的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%的steal
和~88%的空闲时间,仅这两个指标就已经超过100%了。我知道ni
(nice)也被计入us
(用户),因此我不应该将其相加,但这仍然无法解决问题。有人知道如何将这些总和加起来达到100%,或者如何解释
collectd
有时报告的异常情况吗?
top
不是准确地报告 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 - wkltop
中总CPU%可能会达到200%。我忘了提到这个VPS只有一个核心。但在collectd
中,统计数据会按照每个单独的核心进行拆分。 - Martijn