Process

“top”中的睡眠程序如何使用一定百分比的 CPU?

  • May 23, 2017

當我們執行 top 時,我們偶爾會看到一個正在休眠的“S”程序,它正在使用 %CPU; 我希望所有睡眠程序都使用 0% CPU,因為它們不處於活動狀態。我希望只有正在執行的“R”程序在頂部主動消耗 %CPU。例如,查看這些休眠的 Oracle 程序

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM     TIME+ COMMAND                               
11975 oracle    15   0 16.8g 2.6g 2.6g S  8.9  5.5  56:28.38 oracle                       
5837 oracle    15   0 16.8g 1.8g 1.7g S  6.6  3.7  10:04.11 oracle                       
12248 oracle    15   0 16.8g 1.6g 1.6g S  5.9  3.4  12:02.33 oracle                       
21253 oracle    15   0 16.8g 1.6g 1.6g S  4.3  3.4  12:33.83 oracle  

我的想法是,在這種情況下,Oracle 的 CPU 活動由許多低於 Top 的 1 秒時間粒度的短脈衝組成。這意味著使用計數器得到更新,但 Top 看不到“R”狀態,因為它太短了。

有什麼想法嗎?

這幾乎肯定是正在發生的事情。在這種情況下,對於 Oracle,CPU 使用率由許多低於 Top 1s 時間粒度的短突發組成。這意味著使用計數器得到更新,但 Top 看不到“R”狀態,因為它太短了。

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