Tarea programada descontrolada
Una tarea cron descontrolada en SysAdmin Crisis: una copia de seguridad arranca hacia las tres de la madrugada y satura la CPU. Aprende su firma.
Última actualización:
Una tarea programada se dispara, no termina y mantiene la CPU al 100 %. Es el único incidente que vuelve después de que lo has atendido, porque ocuparte del proceso no es lo mismo que ocuparte de la programación.
Qué hace
En la máquina objetivo, la CPU entra en saturación: WARN, luego CRIT, y la disponibilidad se desliza con ella. La tarea es un proceso con nombre y aparece en la salida de top con su PID; por eso la parte difícil no es el diagnóstico.
La parte difícil es que el programador sigue vivo. Detienes el proceso y la misma instancia del incidente lo vuelve a arrancar poco después. Lo hace un número limitado de veces, hasta que la propia ventana de la tarea se cierra sola; así que la noche que pasas ocupándote de ella una y otra vez sí termina, pero termina porque a la tarea se le acabó la paciencia, no porque hayas resuelto algo; la línea de cierre del log lo dice así.
La firma en el log
En el log de cron arranca una tarea y luego monit muestra el mismo nombre por encima del umbral 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%]
El momento es parte de la firma. Este incidente tiende a caer a mitad del turno, hacia las 03:00, que es justo cuando se abriría una ventana de copia de seguridad real. Encuentras el proceso con top; quién lo inició está escrito en ps y en los registros de cron.
Si lo dejas
Saturación sostenida de CPU en una sola máquina, y la deuda de SLA que trae un incidente sin resolver. Es sobrevivible, porque la máquina no pasa a DOWN por sí sola, pero desangra disponibilidad mientras dure.
Cómo distinguirlo
| Se parece a | Qué lo distingue |
|---|---|
| Inundación DDoS | Ambas acaparan la CPU. Una inundación llega a través de las máquinas web con advertencias SYN del kernel; una tarea descontrolada nombra un único proceso en una única máquina sin historia de tráfico. |
| Fuga de memoria | Ambas nombran un proceso. Fíjate en qué métrica se mueve: CPU aquí, RAM allí. |
Cuándo aparece
| Noche más temprana | 4 |
| Necesita | una máquina db |
| Peso | 85 |
| A la vez | una instancia |