nginx php

nginx - ADVERTENCIA:[el grupo www] parece estar ocupado(es posible que necesite aumentar pm.start_servers o pm.min/max_spare_servers), generando



php (1)

Es una cookie difícil porque podría haber numerosos factores involucrados. El primer problema con tu configuración es que el max_children es ridículamente alto. Si cada proceso secundario utiliza 50 MB, 50 x 32768 agotarían fácilmente 16 GB.

Una mejor manera de determinar max_children es averiguar cuánto utiliza cada proceso hijo, luego tener en cuenta la RAM máxima que le gustaría usar php-fpm y luego dividir los valores. Por ejemplo, si tengo un servidor de 16 GB, puedo ejecutar el siguiente comando para determinar la cantidad de RAM que consume cada niño php-fpm:

ps -ylC php-fpm --sort:rss

¡Nota! Es posible que sea necesario especificar explícitamente el usuario si php-fpm se está ejecutando bajo el diferente.

ps -ylC php-fpm --sort:rss -u www-data

donde www-data es el usuario bajo el cual se ejecuta php-fpm.

Usted está buscando la columna RSS; Indica la memoria residente y se mide en KB. Si tengo un promedio de 50 MB por proceso y quiero usar un máximo de 10 GB para los procesos php-fpm, todo lo que hago es 10000MB / 50MB = 200 . Entonces, sobre esa base, puedo usar 200 niños para mi consumo de memoria establecido.

Ahora, con respecto a los servidores, deseará establecer max_spare_servers en x2 o x4 el número de núcleos. Entonces, si tiene una CPU de 8 núcleos, puede comenzar con un valor de 16 para max_spare_servers y subir hasta 32.

El valor de start_servers debe estar alrededor de la mitad del valor de max_spare_servers.

También debe considerar bajar las max_requests a alrededor de 500.

Además, además de dinámico, el valor de pm también se puede establecer en estático o bajo demanda. Static siempre tendrá un número fijo de servidores que se ejecutan en un momento dado. Esto es bueno si tiene una cantidad constante de usuarios o quiere asegurarse de no violar la memoria máxima. La demanda solo iniciará los procesos cuando sea necesario. El inconveniente es, obviamente, tener que iniciar / eliminar procesos constantemente, lo que generalmente se traduce en un ligero retraso en el manejo de las solicitudes. La ventaja es que solo usas recursos cuando los necesitas. "Dinámico" siempre inicia X cantidad de servidores especificados en la opción start_servers y crea procesos adicionales según sea necesario.

Si aún experimenta problemas con la memoria, considere cambiar pm a on-demand.

Esta es una guía general, su configuración puede necesitar ajustes adicionales. Realmente se trata de jugar con la configuración y ejecutar puntos de referencia para obtener el máximo rendimiento y el uso óptimo de los recursos. Es algo tedioso, pero es la mejor manera de determinar estos tipos de configuraciones porque cada configuración es diferente.

Tengo un servidor CentOS. El sistema es nginx / php-fpm. Tiene 16GB de RAM. CPUs: 8

Frecuencia de CPU: 2660.203 MHz

¿Por qué aparece este error en mi registro de errores?

php-fpm / error.log :

[02-Ago-2014 17:14:04] ADVERTENCIA: [el grupo www] parece estar ocupado (es posible que tenga que aumentar pm.start_servers, o pm.min / max_spare_servers), generar 8 hijos, hay 0 inactivos y 21 en total niños

Esta es mi configuración php-fpm para el grupo www:

php-fpm / www.conf :

pm = dinámico

pm.max_children = 32768

pm.start_servers = 10

pm.min_spare_servers = 10

pm.max_spare_servers = 10

pm.max_requests = 5000

¿Como solucionar el problema?