每當我嘗試從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