topが誤ったCPU使用率を報告するのはなぜですか?


10

私はIntel(R) Xeon(R) CPU E552016の論理コア(8はHT)として見えるマシンを持っています。CPU時間を消費するために何かを実行する場合(シングルスレッド)、topはプロセスの100%のCPU使用率を正しく報告しますが、合計使用率は約3〜4%です。

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX

確かに、報告された使用量は〜6.25%(16コアの1)になるはずです。

  • それは仮想マシンなので間違っていますか?
  • 正しい値を計算するにはどうすればよいですか?
linux  cpu  top 

1
atopトップを変更して各CPUの使用状況を個別に報告することができます(を押す1
Hubert Kario

@HubertKario各コアについて報告される使用量は正しいので、なぜ全体が間違っているのですか?

個々のコアの使用レベルが正しい場合、これは予想外にありそうにないほど上位のバグを示唆しています...
Hubert Kario

これは、VMの不正な上位結果に関する最初の投稿ではありません。VMテクノロジと、ホストおよびゲストオペレーティングシステムについて教えてください。
Nils

@Nils XenとUbuntu / 2.6.32-21-serverゲスト。ホストOSに関する情報はありません。

回答:


12

top要約では、すべてのコアを合計したCPUに関連する使用状況を報告します。一方、プロセスのリストを見ると、上位のレポートは1つのコア(実際またはHT)を基準とした割合を報告しています。4つのCPUコアを消費する可能性がある4つのスレッドでプロセスを実行してみてください。CPUが400%使用されていることがわかります。

理由はわかりませんが、これが私が目にtopしたすべてのLinuxシステムでどのように機能するかです。


5

ほとんどの場合top、説明したとおり、デフォルトで「Irix」モードで動作します。合計CPU機能のパーセンテージを取得する場合(つまり、可能なCPU使用率の合計が100%になり、cpu_cores_number * 100%ではない場合)、を押して「Irix」モードを切り替えますI

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.