Process
“top”中的睡眠程序如何使用一定百分比的 CPU?
當我們執行 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”狀態,因為它太短了。