Как перезапустить сервисы 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 параметры конфигурации.

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