Tarefa agendada descontrolada
Tarefa cron descontrolada no SysAdmin Crisis: um backup começa por volta das três da manhã e prende a CPU em 100% até ser parado. Veja a assinatura nos logs.
Última atualização:
Uma tarefa agendada dispara, não termina e mantém a CPU em 100%. É o único incidente que volta depois de você lidar com ele — porque lidar com o processo não é o mesmo que lidar com o agendamento.
O que ele faz
Na máquina-alvo, a CPU entra em saturação: WARN, depois CRIT, e a disponibilidade (uptime) desliza junto. A tarefa é um processo nomeado e aparece na saída de top com seu PID; portanto a parte difícil não é o diagnóstico.
A parte difícil é que o agendador continua vivo. Você para o processo e a mesma instância do incidente o inicia de novo pouco depois. Isso acontece um número limitado de vezes, até que a janela da própria tarefa se feche sozinha — então a noite que você passa lidando com ela repetidamente de fato termina, mas termina porque a tarefa ficou sem paciência, não porque você resolveu alguma coisa; a linha de fechamento no log diz exatamente isso.
A assinatura nos logs
No log do cron uma tarefa começa, e então o monit mostra o mesmo nome acima do limite de CPU:
03:02:15 db-01 CRON[24310]: (root) CMD (/opt/jobs/backup.sh)
03:02:51 db-01 monit[588]: 'backup.sh' cpu usage of 100% matches resource limit [cpu usage > 80.0%]
03:03:40 db-01 monit[588]: 'db-01' cpu usage of 98% matches resource limit [cpu usage > 90.0%]
O horário faz parte da assinatura. Este incidente tende a cair no meio do turno, por volta das 03:00 — exatamente quando uma janela de backup de verdade se abriria. Você encontra o processo com top; quem o iniciou está registrado em ps e nos registros do cron.
Se você deixar de lado
Saturação de CPU sustentada em uma única máquina, e a dívida de SLA que um incidente sem resolução traz. É sobrevivível — a máquina não vai para DOWN sozinha —, mas drena disponibilidade enquanto durar.
Como distingui-lo
| Parece com | O que o separa |
|---|---|
| Inundação de DDoS | Ambos travam a CPU. Uma inundação chega por várias máquinas web, com avisos de SYN do kernel; uma tarefa descontrolada nomeia um único processo em uma única máquina, sem história de tráfego. |
| Vazamento de memória | Ambos nomeiam um processo. Veja qual métrica está se movendo: CPU aqui, RAM lá. |
Quando ele aparece
| Noite mínima | 4 |
| Requer | uma máquina db |
| Peso | 85 |
| Ao mesmo tempo | uma instância |