Cpu-Usage

為什麼暫停的程序在ps中顯示CPU使用率很高?

  • October 11, 2013

有時,當程序掛起(處於 T 狀態)時,輸出會ps顯示該程序使用了異常數量的 CPU%。

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
cossey    8697 26.9  0.0   8808   672 pts/3    T    09:25   0:22 gzip

這是一個錯誤ps嗎?

在某些版本中ps,該%CPU列顯示程序整個生命週期內的平均 CPU 使用率。其他人實施衰減平均值(http://www.google.com/search?q=ps+cpu+decaying+average),但即使這樣,您也必須在暫停後等待一段時間才能使平均值降至 0。

POSIX 說

電腦處理器

最近使用的 CPU 時間與同一時期可用的 CPU 時間的比率,以百分比表示。在這種情況下,“最近”的含義是未指定的。可用的 CPU 時間以未指定的方式確定。

理由是:

pcpu 欄位表示可用的 CPU 時間以未指定的方式確定。這是因為很難表達一種對所有可能的機器架構都有用的算法。該值的歷史對應物試圖顯示最近的使用百分比,例如前一分鐘。通常,所有流程的這些值加起來並不等於 100%。鼓勵實現向使用者提供該欄位中的數據,以幫助他們辨識目前影響系統性能的程序。

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