Meu servidor Debian novamente parou de responder e precisou ser restartet (o login SSH era impossível, não transmitia mais dados de log para o banco de dados MySQL de outro servidor, nenhuma nova conexão FTP era possível, mas o Wowza Mediaserver continuava a executar e transmitir vídeo sem problemas) .
No entanto, eu ainda estava logado através de uma conexão SSH existente e capaz de inserir comandos shell. Ao entrar "ps auxf", eu tive essa saída (OUTPUT 1):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 14994 0.0 0.0 71200 3520 ? S 00:01 0:00 \_/usr/sbin/CRON -f
root 15007 0.0 0.0 4328 748 ? Ss 00:01 0:00 | \_ /bin/sh -c /usr/sbin/iotop --accumulated --batch --delay=86100 --proc
root 15014 0.0 0.0 60208 17548 ? S 00:01 0:00 | \_ /usr/bin/python /usr/sbin/iotop --accumulated --batch --delay=861
root 18667 0.0 0.0 71092 3504 ? D 08:50 0:00 \_ /usr/sbin/CRON -f
root 18668 0.0 0.0 71092 3472 ? D 08:50 0:00 \_ /usr/sbin/CRON -f
root 18669 0.0 0.0 71092 3472 ? D 08:50 0:00 \_ /usr/sbin/CRON -f
root 18670 0.0 0.0 71092 3428 ? D 08:50 0:00 \_ /usr/sbin/CRON -f
root 18671 0.0 0.0 71200 3520 ? D 08:50 0:00 \_ /usr/sbin/CRON -f
E dezenas mais como as últimas linhas. Além disso, ao inserir ps após 15 minutos, todas as entradas CRON -f antigas (por exemplo, PID 18667, hora de início 08:50) ainda apareciam como processos em execução.
Obviamente, muitos cronjobs estavam sendo executados, mas apenas o primeiro cronjob (que existe no meu crontab) tem um conteúdo de script (/ usr / sbin / iotop). Os outros não têm comando e estão no modo inativo (estado "D" versus o primeiro com estado "S").
Meu servidor executa cerca de 5-6 cronwares de script PHP uma vez por minuto, a maioria dos quais completa dentro de cerca de 15-40 segundos e não consome muitos recursos. Sua saída ps aux se parece com isso (OUTPUT 2):
root 19024 0.0 0.0 42224 2644 ? S 09:03 0:00 \_ /usr/sbin/CRON -f
root 19026 0.0 0.0 4328 712 ? Ss 09:03 0:00 | \_ /bin/sh -c /usr/bin/php -q /usr/local/script.php
Portanto, eu provisoriamente concluo que a primeira saída (OUTPUT 1) não mostra que meus scripts PHP ficaram sem resposta, acumularam-se maciçamente e causaram problemas. No entanto, a saída "ps auxf" no OUTPUT 1 mostrou cerca de 5-6 novas entradas CRON -f por minuto, todas as quais continuaram a ser executadas, o que pode se referir ao cronjob tentar executar meus scripts, mas não poder executá-los e então ficar preso, produzindo essa enorme saída ps auxf?
Perguntas:
Qual é o significado dessas dezenas de linhas CRON -f? A que eles se referem?
Esta saída do ps auxf pode explicar por que meu servidor não respondeu?