![为什么暂停的进程在 ps 中显示 CPU 使用率很高?](https://linux22.com/image/619239/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9A%82%E5%81%9C%E7%9A%84%E8%BF%9B%E7%A8%8B%E5%9C%A8%20ps%20%E4%B8%AD%E6%98%BE%E7%A4%BA%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E5%BE%88%E9%AB%98%EF%BC%9F.png)
有时当某个进程被暂停(处于 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
?
答案1
在某些版本的 中ps
,该%CPU
列显示进程整个生命周期的平均 CPU 使用率。其他版本则采用衰减平均值 (http://www.google.com/search?q=ps+cpu+decaying+average),但即使这样,您在暂停后也必须等待一段时间才能使平均值降至 0。
处理器
最近使用的 CPU 时间与同一时间段内可用的 CPU 时间之比,以百分比表示。此处“最近”的含义未指定。可用的 CPU 时间以未指定的方式确定。
理由如下:
pcpu 字段表示可用的 CPU 时间以未指定的方式确定。这是因为很难表达一种适用于所有可能的机器架构的算法。该值的历史对应物试图显示最近(例如前一分钟)的使用百分比。通常,所有进程的这些值加起来不等于 100%。鼓励实现向用户提供此字段中的数据,以帮助他们识别当前影响系统性能的进程。