Eu tenho um servidor de e-mail postfix com saslauthd. Repetidamente o daemon saslauthd consome 100% da CPU. Reiniciar esses serviços retorna ao uso normal da CPU.
Existe algum script adequado para determinar serviços com alto uso de CPU e reiniciá-los automaticamente.
Desde já, obrigado.
Responder1
Você pode querer dar uma olhada em monit
(site oficial).
É facilmente configurável para observar o alto uso da CPU e reiniciar processos quando necessário.
Um exemplo simples (você deve configurá-lo de acordo com os caminhos e necessidades do seu sistema):
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
Onde (retirado do manual):
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
E umciclois é igual ao número de segundos nas set daemon
opções de configuração.