Linux
多執行緒程序的 CPU 使用率
背景:我有一大堆執行 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/核心。