Почему приостановленный процесс показывает высокую загрузку процессора в пс?
Иногда, когда процесс приостановлен (в состоянии 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
столбец показывает среднее использование ЦП за весь срок службы процесса. Другие реализуют спадающее среднее ( http://www.google.com/search?q=ps+cpu+decaying+average), но даже с этим вам придется подождать некоторое время после приостановки, чтобы среднее значение упало до 0.
PCPU
Отношение времени процессора, использованного в последнее время, к времени процессора, доступному за тот же период, выражается в процентах. Значение "недавно" в этом контексте не определено. Доступное время ЦП определяется неопределенным образом.
И обоснование:
Поле pcpu указывает, что доступное время ЦП определяется неопределенным образом. Это потому, что трудно выразить алгоритм, который будет полезен для всех возможных архитектур машин. Исторические аналоги этого значения пытались показать процент использования в недавнем прошлом, например, в предыдущую минуту. Зачастую эти значения для всех процессов не складываются до 100%. Реализациям рекомендуется предоставлять данные в этой области пользователям, которые помогут им идентифицировать процессы, в настоящее время влияющие на производительность системы.