1

Мой сервер Debian снова перестал отвечать на запросы и нуждался в перезапуске (невозможен вход по SSH, больше не передавались данные журнала в базу данных MySQL другого сервера, новые подключения FTP невозможны, но Wowza Mediaserver продолжает работать и потоковое видео без проблем).

Тем не менее, я все еще вошел в систему через существующее соединение SSH и смог вводить команды оболочки. При вводе "ps auxf" у меня был такой вывод (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

И десятки больше похожи на последние несколько строк. Кроме того, при вводе ps через 15 минут все старые записи CRON -f (например, PID 18667, время начала 08:50) по-прежнему отображаются как запущенные процессы.

Очевидно, что выполнялось много cronjobs, но только первый cronjob (который существует в моем crontab) имеет содержимое сценария (/usr/sbin/iotop). Другие не имеют команды и находятся в неактивном режиме (состояние "D" по сравнению с первым, имеющим состояние "S").

Мой сервер выполняет около 5-6 PHP-скриптов cronjobs раз в минуту, большинство из которых выполняются в течение 15-40 секунд и не требуют больших ресурсов. Их вывод ps aux выглядит следующим образом (ВЫХОД 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

Поэтому я предварительно делаю вывод, что первый вывод (ВЫХОД 1) не показывает, что мои PHP-скрипты перестали отвечать, накапливались и вызывали проблемы. Тем не менее, вывод "ps auxf" в OUTPUT 1 показал около 5-6 новых записей CRON -f в минуту, все из которых продолжали выполняться, что может относиться к попыткам cronjob запустить мои сценарии, но не в состоянии запустить их и затем застрять, производя этот огромный вывод ps auxf?

Вопросы:

  1. В чем смысл этих десятков строк CRON -f? На что они ссылаются?

  2. Может ли этот вывод ps auxf объяснить что-то, почему мой сервер перестал отвечать на запросы?

0