Consulte Arquivo aberto máximo prático descritores (ulimit -n) para um sistema de alto volume sobre como aumentar o limite do sistema. Se o seu limite de sistema for menor do que o autolimitado do PHP, isso pode causar esse problema.
Eu tenho um servidor com a atual versão 5.3.x instalada. Como estamos executando um servidor realmente simples e pequeno em php usando sockets, que se conecta a muitos clientes usando sockets, precisamos aumentar o limite de arquivo aberto
que já foi feito no servidor para o usuário, que executa o servidor
#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
e nós compilamos o php com
--enable-fd-setsize=8192
ainda estamos recebendo
[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.
de vez em quando em nossos registros. Alguém sabe quem configurar o servidor unix e php corretamente para que isso funcione?
Eu encontrei um bug, mas isso está relacionado a 2006 e marcado como "não é um bug"
Consulte Arquivo aberto máximo prático descritores (ulimit -n) para um sistema de alto volume sobre como aumentar o limite do sistema. Se o seu limite de sistema for menor do que o autolimitado do PHP, isso pode causar esse problema.