Что это означает, когда секунды использования процессора не увеличиваются, даже если процесс явно работает?

В системе Ubuntu 12.04 я использую Redis. Наш мониторинг рассматривает процесс redis и извлекает загрузку процессора из /proc/pid/stats. Отлично.

В течение десятков секунд это число вообще не увеличивается, затем оно внезапно догоняет и увеличивается на тысячи. Это продолжает взрываться таким образом.

В течение времени, когда оно не увеличивается, Redis быстро реагирует и сообщает о выполненных сотнях операций. Так ясно, что это намечено и работает.

(обновление: для нас, похоже, это происходит только в наших системах Ubuntu 3.13.0-48. Системы с ядром 3.5.x, на которых запущены аналогичные сервисы, не сталкиваются с этой проблемой).

Что это значит, когда утилита (и пользователь, и sys) действуют таким образом? Есть ли что-нибудь, что можно настроить, чтобы исправить это?

1 ответ

Я полагаю, вы смотрите на одну из записей в stat это включает процессорное время, используемое дочерними процессами. Если так, то примечание в справочной странице Times (2) объясняет это...

Времена для прерванных потомков (и их потомков) добавляются в момент, когда wait (2) или waitpid (2) возвращают свой идентификатор процесса.

Другие вопросы по тегам