[pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 11 total children
El mensaje indica que el pool de procesos de PHP-FPM está bajo carga, y los procesos no son suficientes para manejar las solicitudes actuales. Esto puede provocar demoras en las respuestas o errores en el servidor.
Análisis del mensaje:
pool www
: Se refiere al pool configurado en tu archivowww.conf
(o similar).seems busy
: El pool está ocupado y necesita más procesos.spawning 8 children
: PHP-FPM está intentando crear más procesos para manejar la carga.0 idle
: No hay procesos inactivos disponibles para manejar nuevas solicitudes.11 total children
: Hay 11 procesos de PHP-FPM activos.
Soluciones:
- Revisar y ajustar configuración de PHP-FPM: Edita el archivo de configuración del pool correspondiente (generalmente
/etc/php/7.x/fpm/pool.d/www.conf
).- Aumenta los valores relacionados con los procesos:
pm = dynamic
pm.max_children = 40
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_children
: El número máximo de procesos hijos que pueden crearse.pm.start_servers
: Número inicial de procesos al iniciar PHP-FPM.pm.min_spare_servers
: Número mínimo de procesos inactivos que se mantendrán.pm.max_spare_servers
: Número máximo de procesos inactivos.
- Aumenta los valores relacionados con los procesos:
- Monitoriza el rendimiento: Usa herramientas como
top
,htop
osar
para verificar la carga de CPU y memoria. Con un servidor con 2 vCPU y 2 GB de RAM, asegúrate de que los valores no sobrecarguen los recursos.
Estimación de memoria por proceso
Un proceso PHP-FPM típico consume entre 20 MB y 50 MB de RAM, dependiendo de:
La carga de trabajo.
Extensiones PHP activas.
Tamaño de las solicitudes.
Para 40 procesos.
Mínimo: 40×20 MB=800 MB
Máximo: 40×50 MB=2000 MB
Dado que el servidor estimado tiene 2 GB de RAM, usar 40 procesos será el límite superior, dejando poco espacio para otros procesos del sistema (como el servidor web o servicios de base de datos). Si no tienes un uso intensivo de otros servicios, esta configuración puede funcionar. - Optimización de tu aplicación:
- Revisa tu código PHP para identificar posibles cuellos de botella.
- Implementa cache (e.g., Opcache, Memcached o Redis).
- Reduce el tiempo de ejecución de los scripts para liberar procesos más rápido.
- Verifica el tráfico: Si el aumento de carga es temporal (por ejemplo, debido a picos de tráfico), considera usar un balanceador de carga o implementar estrategias de escalabilidad.
- Reinicia PHP-FPM: Una vez ajustados los parámetros, reinicia el servicio:
sudo systemctl restart phpx.x-fpm
Nota:
Si el servidor sigue mostrando problemas, puede ser necesario considerar una actualización a un servidor con más recursos o usar servicios de escalado horizontal.