Назад | Перейти на главную страницу

Как перезапустить службы Linux, если он достигает 100% ЦП?

У меня есть почтовый сервер postfix с saslauthd. Снова и снова демон saslauthd съедает 100% CPU. При перезапуске этих служб происходит возврат к нормальному использованию процессора.

Есть ли подходящий сценарий для определения служб с высокой загрузкой ЦП и их автоматического перезапуска.

Заранее спасибо.

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