php 中的文件指针已达到最大限制且无法更改

php 中的文件指针已达到最大限制且无法更改

我有一个安装了当前 5.3.x 版本的服务器。由于我们运行的是使用套接字的 php 中非常简单和小型的服务器,该服务器使用套接字连接到很多客户端,因此我们需要提高打开文件限制

已经在服务器上为用户完成了,运行服务器

#ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 29879
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 8192
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 29879
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

我们用以下方式编译 php

--enable-fd-setsize=8192

我们仍然得到

[19-Nov-2012 09:24:23 Europe/Berlin] PHP Warning:  socket_select(): You MUST recompile PHP     with a larger value of FD_SETSIZE.
It is set to 1024, but you have descriptors numbered at least as high as 1024.
--enable-fd-setsize=2048 is recommended, but you may want to set it
to equal the maximum number of open files supported by your system,
in order to avoid seeing this error again at a later date.

偶尔会出现在我们的日志中。有谁知道该如何正确配置 unix 服务器和 php 才能使其正常工作?

我发现了一个错误,但它与 2006 年有关,并被标记为“不是错误”

https://bugs.php.net/bug.php?id=37025&edit=1

答案1

高容量系统的实际最大打开文件描述符 (ulimit -n)如何提高系统限制。如果您的系统限制低于 PHP 内置的自我限制,则可能会导致此问题。

相关内容