今天早上,当我坐在我的 Ubuntu 14.04 系统前时,root cron 作业 /usr/lib/php5/sessionclean 同时运行了 50 多次,生成了以下命令的 50 多个副本:
root 8147 0.0 0.0 65852 1580 ? S May13 0:00 CRON
root 8148 0.0 0.0 4444 648 ? Ss May13 0:00 /bin/sh -c [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)
root 8153 0.0 0.0 4444 648 ? S May13 0:00 /bin/sh /usr/lib/php5/sessionclean /var/lib/php5 24
root 8154 0.0 0.0 7328 644 ? S May13 0:00 /usr/bin/lsof -w -l +d /var/lib/php5
root 8155 0.0 0.0 7544 688 ? S May13 0:00 awk -- { if (NR > 1) { print $9; } }
root 8156 0.0 0.0 7480 612 ? S May13 0:00 xargs -i touch -c {}
root 8157 0.0 0.0 7328 108 ? D May13 0:00 /usr/bin/lsof -w -l +d /var/lib/php5
系统负载超过 60。以前从未发生过这种情况。有什么假设吗?
同时,我的一个 NFS 挂载点 (/mnt/foo/bar) 在 rsync 作业正在写入时发生故障,因此 rsync 挂起。这有关系吗?
答案1
是的,lsof 检查所有文件系统中是否有打开的文件,所以这可能是原因。如果这种情况经常发生,您可能应该在 NFS 挂载上使用“soft”选项。