У меня есть почтовый сервер postfix с saslauthd. Время от времени демон saslauthd съедает 100% CPU. Перезапуск этих служб возвращает нормальное использование 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
параметрах конфигурации.