Pular para o conteúdo

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 comO que o separa
Inundação de DDoSAmbos 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óriaAmbos nomeiam um processo. Veja qual métrica está se movendo: CPU aqui, RAM lá.

Quando ele aparece

Noite mínima4
Requeruma máquina db
Peso85
Ao mesmo tempouma instância