測量負載 - 頂部的 %CPU 與 %us 不同

測量負載 - 頂部的 %CPU 與 %us 不同

當我在遠端伺服器上執行 TOP 時,我發現系統利用率非常低 (3.8%us)。然而,對於實際進程,我看到 CPU 佔用率為 29.6%。

由於該伺服器有 8 個 CPU 核心,所以 %CPU 是不是只有 1 個 CPU 的使用率,而usup top 超過了 8 個 CPU?

當我將 29.6 除以 8 時,得到 3.7,這似乎驗證了我的猜測。所以問題:

  • 我看到的低利用率實際上是超過 8 個 CPU,而 %CPU 是指進程正在使用的 CPU?
  • 使用多個 CPU 的進程會發生什麼情況?
  • 如果需要,tomcat 是否使用多個 CPU?或者如果負載增加,tomcat會崩潰但我們永遠不會被告知高負載

頂部輸出

    top - 12:17:40 up 9 days, 21:51,  2 users,  load average: 0.32, 0.28, 0.27
    Tasks: 201 total,   2 running, 199 sleeping,   0 stopped,   0 zombie
    Cpu(s):  3.8%us,  0.1%sy,  0.0%ni, 96.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  16229072k total,  5617572k used, 10611500k free,   156480k buffers
    Swap:  8388588k total,        0k used,  8388588k free,  2632452k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    32676 tomcat    20   0 12.4g 2.3g  10m S 29.6 14.6   2530:56 java

我已經檢查過來源,例如http://www.kernelhardware.org/linux-top-command/,但沒有一個對%us和進行區分%CPU

只有一些不明確的訊息,例如:%CPU – Percentage of CPU used

答案1

圖中顯示的 CPU 百分比top適用於所有 CPU 的組合。要查看每個 CPU 的統計信息,請在運行1時按。top

另一方面,進程清單中的百分比是單一CPU核心的百分比,因此可能超過100%。

相關內容