3

每当我尝试从命令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

无论我如何将这些百分比相加,我从来没有完全得到 100% 的 CPU,当然不是以任何合乎逻辑的方式。大多数情况下,这似乎是舍入错误;100.1% 或 99.9%,但有时我最终会超过 110%。这通常发生在steal相对较高的情况下,例如collectd报告的一种情况是约 21.44% 的抢断和约 88% 的闲置,而这两种情况已经远远超过 100%。我知道ni(nice) 也计入us(user),所以我不应该添加它,但这仍然行不通。

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

4

2 回答 2

5

collectd(和top,htopvmstat任何其他此类实用程序)报告一个间隔内的平均值,并且根据内核的性质(这些实用程序从中查询其统计数据)通常不使用浮点数学并且不一定试图详尽地解释所有内容,可以' t 100% 准确。有时它们加起来会少于 100%,有时会更多。它不打算用于审计,只是一个一般性的时间花在哪里的指示。

于 2012-08-15T21:43:08.217 回答
1

我确认这与 collectd 无关,而是与内核会计有关。这种不准确性在无滴答系统和/或节流状态下尤其明显。

于 2013-03-12T12:38:33.307 回答