php – 如何处理错误:系统中打开的文件太多了?

我正在运行一个cron并输出到我的id并获得以下作为输出:

/bin/sh: /usr/bin/php: Too many open files in system

Cron每5分钟跑一次.

已检查/ var / logs / cron和cron每5分钟执行一次.

网站在服务器上正常运行.

最佳答案
这意味着您的系统在php或其他应用程序中用尽了文件句柄.确保您打开的任何文件都是close以释放文件句柄.

要运行每个程序的句柄数,请使用(以root身份):

for p in $(ps -A -o pid); do
    nh=$(ls /proc/$p/fd  2>/dev/null | wc -l) &&
    exe=$(readlink -f /proc/$p/exe  2>/dev/null) &&
    echo "$p ($exe): $nh"
done

要获得更详细的输出,请使用lsof.

您还可以通过modyfing /etc/security/limits.conf(效果更改为/proc/sys/fs/file-max)增加可能的系统文件句柄数,并使用ulimit -n减少当前终端会话的数量.

转载注明原文:php – 如何处理错误:系统中打开的文件太多了? - 代码日志