Unix

對 Unix ’top’ 命令中的 CPU 值感到困惑

  • July 2, 2010

在下面的螢幕截圖中,整體 CPU 報告為 3%,但 mysqld 程序報告為使用 57%。這是整體 3% 的 57%,因此 mysqld 只使用了大約 1.5% 的 CPU?

頂部截圖 http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

更新:下面的評論者要求我按“1”鍵並發布結果: 1 鍵 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

57.6% 意味著 mysqld 正在使用 0.576 個 cpu。差異可能是整個系統的數據收集與收集每個程序數據之間的競爭條件。

編輯:根據您的更新,您似乎有 16 個核心。

57.5% => .575/16 = .036 = 3.6%.

這就是你的 3% 的來源。

如果將所有空閒百分比相加並從 1600% 中減去,則結果也約為 57.5%。

您可以嘗試在 top 執行時按數字 1 看看會發生什麼。

編輯:

無名先生說得好。

top 是在說“如果你有一個 CPU 核心,那麼它的繁忙率為 57.5%。”

但是你有 16 個核心。所以這個 57 數字分佈在各處,mysqld 是多執行緒的,一切都……

有點混亂。但我認為這是因為 top 會發現更難顯示每個核心的資訊……想像一個具有 16 個或更多核心的 top 資訊行!

此外,如果您將所有“%us”CPU 時間加起來

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

這就是 3% 數字的來源……

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