无响应的服务器上有许多 cron -f 进程

无响应的服务器上有许多 cron -f 进程

我的 Debian 服务器再次变得无响应并需要重新启动(无法进行 SSH 登录,不再将日志数据传输到另一台服务器的 MySQL 数据库,无法建立新的 FTP 连接,但 Wowza Mediaserver 继续运行并流式传输视频而没有问题)。

但是,我仍然通过现有的 SSH 连接登录,并能够输入 shell 命令。输入“ps auxf”时,我得到了以下输出(输出 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

还有几十个像最后几行这样的。此外,当 15 分钟后输入 ps 时,所有旧的 CRON -f 条目(例如 PID 18667,开始时间 08:50)仍然显示为正在运行的进程。

显然,有许多 cronjob 正在运行,但只有第一个 cronjob(存在于我的 crontab 中)有脚本内容 (/usr/sbin/iotop)。其他 cronjob 没有命令,处于非活动模式(状态“D”,而第一个处于状态“S”)。

我的服务器每分钟运行大约 5-6 个 PHP 脚本 cronjob,其中大多数在大约 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

因此,我暂时得出结论,第一个输出(OUTPUT 1)并未显示我的 PHP 脚本变得无响应、大量累积并导致问题。但是,OUTPUT 1 中的“ps auxf”输出显示每分钟大约有 5-6 个新的 CRON -f 条目,所有这些条目都在继续运行,这可能指的是 cronjob 尝试运行我的脚本,但无法运行它们然后卡住,从而产生了这个大量的 ps auxf 输出?

问题:

  1. 这几十行 CRON -f 是什么意思?它们指的是什么?

  2. 这个 ps auxf 输出可以解释为什么我的服务器没有响应吗?

答案1

对我来说,这归因于电子邮件系统出现故障,因此所有这些 cron 进程都在等待发送结果。我重新启动了 postfix,这种情况就不再发生了。

相关内容