fastcgi - php-fpm 打开的文件太多

标签 fastcgi php

我正在运行 nginx 作为前端和 php-fpm 作为后端来处理 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

最佳答案

您可以使用 lsof(列出打开的文件)进行检查,可能需要安装它,因为大多数 linux 发行版默认不包含它。它应该让您了解那些打开的文件是哪些以及拥有它的进程(因此您可以 grep for php)。做一个 lsof | wc -l 来计算那些。真的有那么多开放吗?或者错误可能更像是更深层次的症状。如果您知道它们是什么,也许这会给出原因的线索......

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

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

关于fastcgi - php-fpm 打开的文件太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12461810/

相关文章:

C++/C - 奇数代码

php - 优化基于 PHP cURL 的链接检查器脚本 - 目前非常慢

php - mysqli 图像 blob 插入不工作

php - 如何为持久性 PHP FastCGI 进程设计应用程序?

c++ - 用于 C++ 的 FastCGI

json - 在 bash 中打印 JSON 格式的字符串

PhpMyAdmin 不工作 - XAMPP

php - Laravel 5 和委托(delegate)。如何同时保存用户和附加角色

php - 用 Volley 发送参数并获得响应

python - Lighttpd,fastcgi 进程的命令行参数