php-fpm太多打开的文件

时间:2012-09-17 14:49:15

标签: fastcgi php

我正在运行nginx作为前端和php-fpm作为prcesss php文件的后端。我的/var/log/php-fpm/error.log上出现“打开文件太多”的错误。我增加了硬度&软ulimit到65535,似乎无法解决问题。

/var/log/php-fpm/error.log

[17-Sep-2012 14:43:51] ERROR: failed to prepare the stderr pipe: Too many open files (24)
[17-Sep-2012 14:43:52] ERROR: failed to prepare the stderr pipe: Too many open files (24)

ulimit -n

65535

/etc/php-fpm/www.conf

rlimit_files = 65535

1 个答案:

答案 0 :(得分:4)

您可以查看 lsof (列出打开的文件),可能需要安装它,因为大多数Linux发行版默认情况下不包含此项。它应该给你一个关于那些打开文件是什么以及拥有它的进程的视图(所以你可以grep for php)。做一个 lsof | wc -l <​​/ strong>来计算那些。真的那么开放吗?或许错误更像是更深层次的症状。如果你知道它们是什么,也许这会给出原因......

看一下它提到STDERR的事实,它可能与广义上的错误有关(也许是php-fpm的错误配置参数?)

此外,检查您是使用unix套接字还是使用tcp,请尝试使用tcp选项,除非您使用的是BSD,其中unix套接字被认为可以更快地工作。