Как перезапустить сервисы linux, если он достигает 100% CPU?
У меня есть почтовый сервер postfix с saslauthd. Снова и снова демон saslauthd съедает 100% CPU. Перезапуск этих служб возвращает к нормальному использованию процессора.
Есть ли подходящий скрипт для определения сервисов с высокой загрузкой ЦП и автоматического перезапуска.
Заранее спасибо.
1 ответ
Решение
Возможно, вы захотите взглянуть на monit
( официальный сайт).
Он легко настраивается для отслеживания высокой загрузки ЦП и перезапуска процессов при необходимости.
Простой пример (вы должны настроить его в соответствии с вашими системными путями и потребностями):
check process saslauth with pidfile /var/run/saslauthd/saslauthd.pid
group mail
start program = "/etc/init.d/saslauthd start"
stop program = "/etc/init.d/saslauthd stop"
if cpu > 90% for 2 cycles then restart
Где (взято из руководства):
CPU([user|system|wait]) is the percent of time the system spend in user or
kernel space and I/O. The user/system/wait modifier is optional, if not
used, the total system cpu usage is tested
И цикл равен числу секунд в set daemon
параметры конфигурации.