Столбец Time+ (время ЦП) в верхней команде отображает неверные данные

Столбец Time+ (время ЦП) в верхней команде отображает неверные данные

Столбец Time+ в моей команде top не сообщает правильное время для запущенного скрипта php. Он колеблется вверх и вниз, сначала сообщая что-то вроде

TIME+
22:39.35 php

А потом через три секунды сообщаю

TIME+
7:12.41 php

А затем еще через три секунды сообщаю

TIME+
42:44.21 php

Есть ли какие-нибудь подсказки относительно того, почему это происходит?

Редактировать:

Я нажал "c", чтобы переключить имя процесса, чтобы знать, что это тот же самый процесс. Время по-прежнему сообщается неправильно.

решение1

Вы уверены, что это те же самые процессы php? Держу пари, у вас есть несколько процессов php, которые "прыгают сверху".

Если вы хотите лучше и проще контролировать все php-процессы, я рекомендую использовать «htop», это гораздо проще для ваших задач.

решение2

По умолчанию topсортирует по %CPU, поэтому вы увидите, как процесс в списке перемещается. Используйте клавишу <повторно, чтобы переместить столбец сортировки к PID, и список перестанет «прыгать» (по крайней мере, пока новые процессы не останавливаются или не запускаются). В качестве альтернативы, выполните ps p PID u(подставив PID phpинтересующего вас процесса), чтобы увидеть в psсписке только этот процесс. Если время там не «прыгает», то вы, вероятно, видите артефакт сортировки в top.

решение3

Это значение вычисляется путем взятия 14-го поля из /proc//stat, которым управляет ядро.

Насколько я понимаю, рассматриваемое значение увеличивается лишь «мгновенно» (фактически за сотые доли секунды).

Можете ли вы получить значение /proc//stat для этого pid с интервалом в десять секунд?

Связанный контент