2012-09-17 17 views
5

Estoy ejecutando nginx como frontend y php-fpm como backend para archivos php de prcesss. Obtengo el error "Demasiados archivos abiertos" en mi /var/log/php-fpm/error.log. Aumenté & soft ulimit a 65535 y parece que no puede resolver el problema.php-fpm Demasiados archivos abiertos

/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 

Respuesta

3

Usted podría verificar con lsof (lista de archivos abiertos), probablemente necesite instalarlo ya que la mayoría de las distribuciones de Linux no incluyen esto de forma predeterminada. Debería darle una vista sobre cuáles son esos archivos abiertos y los procesos que lo poseen (para que pueda grep para php). hacer un lsof | wc -l para contar esos. ¿Hay realmente tanto abierto? O tal vez el error sea más como un síntoma de algo más profundo. Si sabes cuáles son, quizás eso dará una pista del por qué ...

Considerando el hecho de que menciona STDERR, es probable que esté relacionado con errores en sentido amplio (¿parámetros de configuración de error para php-fpm quizás?)

Además, verifique si está usando un socket unix o un tcp, pruebe la opción tcp a menos que esté en BSD donde se dice que los sockets Unix funcionan más rápido.

+1

Gracias Gleen, he aumentado el límite abierto de FD en el nivel del sistema operativo Linux y el problema está resuelto. http://www.cyberciti.biz/faq/linux-unix-nginx-too-many-open-files/ – Ryan

Cuestiones relacionadas