Linux CPU 百分比加起来不是 100%

Mar*_*ijn 3 linux cpu-usage collectd

每当我尝试从诸如topmpstat特别是collectd服务之类的命令中计算 CPU 利用率百分比时,我都无法获得准确的 100% CPU 利用率。

例如top来自 Amazon 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
Run Code Online (Sandbox Code Playgroud)

无论我如何将百分比加起来,我都永远无法获得 100% 的 CPU,当然也不是以任何合乎逻辑的方式。大多数情况下,这似乎是舍入错误;100.1% 或 99.9%,但有时我会超过 110%。这通常发生在steal相对较高的情况下,例如collectd报告的一种情况是~21.44% 偷窃和 ~88% 空闲,只是这两个已经远远超过 100%。我知道ni(nice) 也算在us(user) 中,所以我不应该添加它,但这仍然不起作用。

有谁知道如何将这些加起来 100% 或如何解释collectd有时报告的例外情况?

twa*_*erg 5

collectd(和tophtopvmstat或任何其他这样的实用程序)在间隔报告的平均水平,并通过内核的性质(从这些工具查询其统计)一般不使用浮点运算,而不一定试图详尽考虑的一切,可以” t 是 100% 准确的。有时它会加起来小于 100%,有时更多。它不打算用于审计,只是时间花在何处的一般指示。