Столбец 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 с интервалом в десять секунд?