Linux

多執行緒程序的 CPU 使用率

  • June 18, 2009

背景:我有一大堆執行 2.6.20 和 2.6.22 核心的系統,最初是幾年前安裝的 Fedora Core 2。這些系統有 8 個 CPU,如cat /proc/cpuinfo.

我的問題是,當一個使用多執行緒的程序正在執行時,top如果將每個 CPU 上的使用率加在一起,99.99% 的 CPU 使用率是平均每個 CPU 的 99.99% 還是 99.99% 的平均值?換句話說,最大百分比應該是 800% 還是 100%?

似乎當其中一個程序的使用率為 99.99% 時,如果您單獨查看每個 CPU,它們會說使用率為 25%(而不是 100%)。

任何幫助表示讚賞。如果我不清楚或令人困惑,請告訴我,我會盡力澄清。

更新 似乎由於程序員使用的執行緒模型存在問題,我們可能已經看到了低使用率。他們使用的是使用者執行緒而不是核心執行緒,並且看到了允許使用者執行緒執行的操作的限制。

99% 的 cpu 使用率意味著幾乎所有單核的使用率。

如果您的系統已完全載入

$$ couple threads each hogging one cpu $$- 您將看到四核使用率 400% 或兩個四核使用率 800%。 程序/執行緒在 cpu 之間重新分配 - 這就是為什麼您會看到每個核心的使用率為 25%。但你可以為他們設置親和力..然後他們會堅持選擇的處理器/核心。

它顯示每個核心的負載。不要忘記一個很棒的“頂級”替代品,稱為 htop。它將吸引您載入單個 CPU/核心。

引用自:https://serverfault.com/questions/27314