Назад | Перейти на главную страницу

Максимальный предел указателя файла в 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

Видеть Практическое максимальное количество открытых файловых дескрипторов (ulimit -n) для системы большого объема как поднять системный лимит. Если лимит вашей системы ниже, чем самоограничение скомпилированного PHP, то это может вызвать эту проблему.