我正在运行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)
Run Code Online (Sandbox Code Playgroud)
ulimit -n
65535
Run Code Online (Sandbox Code Playgroud)
/etc/php-fpm/www.conf
rlimit_files = 65535
Run Code Online (Sandbox Code Playgroud)
您可以使用lsof (列出打开的文件)进行检查 ,可能需要安装它,因为大多数 Linux 发行版默认情况下不包含它。它应该让您了解这些打开的文件是哪些以及拥有它的进程(这样您就可以 grep for php)。做一个lsof | wc -l来计算这些。真的有那么多开放吗?或者也许这个错误更像是更深层次问题的症状。如果你知道它们是什么,也许就能找到原因......
看看它提到 STDERR 的事实,它可能与广义上的错误相关(也许是 php-fpm 的错误配置参数?)
另外,检查一下您使用的是 unix 套接字还是 tcp 套接字,尝试使用 tcp 选项,除非您使用的是 BSD,其中 unix 套接字据称工作速度更快。
| 归档时间: |
|
| 查看次数: |
10255 次 |
| 最近记录: |