Recientemente, recibimos una solicitud de un propietario de servidor que enfrentaba una alta carga de CPU debido a procesos PHP-FPM. En nuestra función como Servicios de Soporte Técnico para empresas de alojamiento web, configurar y gestionar los servidores web para un rendimiento óptimo es una tarea crucial que realizamos.
¿Qué es PHP-FPM y Por Qué Causa Alta Carga?
PHP-FPM (PHP FastCGI Process Manager) es un demonio FastCGI que permite a un sitio web manejar una alta carga. Sin embargo, a veces este servicio en sí mismo causa alta carga. Para depurar el problema, lo primero que hicimos fue examinar los registros de errores de PHP-FPM, disponibles en una ubicación como «/var/log/php8.2-fpm.log».
Identificamos algunos mensajes que indicaban que el grupo PHP-FPM estaba muy ocupado y no podía manejar el alto tráfico con los parámetros de configuración existentes.
Cómo Realizar el Ajuste de PHP-FPM para Alta Carga
- Cambiar el Administrador de Procesos El administrador de procesos puede ser de tres tipos: dinámico, bajo demanda y estático. El rendimiento del servicio varía drásticamente según este tipo.
- Ajustar Parámetros de PHP-FPM PHP-FPM tiene muchos parámetros de configuración que determinan su rendimiento. Estos parámetros deben determinarse en función de los recursos del servidor disponibles, como RAM y CPU.
- Habilitar Registro de Solicitudes Lentas Si cierta aplicación o sitio se sospecha que causa la alta carga, habilitamos la opción de registro lento en PHP-FPM para rastrear y solucionar las solicitudes intensivas en recursos.
- Gestionar Múltiples Piscinas PHP-FPM permite configurar múltiples piscinas de recursos para aplicaciones separadas, lo que ayuda a contener recursos por aplicación y proporciona seguridad adicional.
PHP-FPM Tuning para Cargas Altas: ¡Un Proceso Continuo!
Ajustar PHP-FPM para un rendimiento óptimo no es simplemente aplicar una solución preestablecida. La configuración y los parámetros para el servicio varían según las necesidades y los recursos del servidor.
Durante el tráfico pico, el rendimiento será diferente al de las horas normales. Por lo tanto, después de realizar los ajustes, llevamos a cabo pruebas de estrés para ver cómo se desempeña el servicio durante una carga alta.
Reducción de la Carga de CPU Después de Ajustar PHP-FPM
En este escenario, logramos reducir drásticamente la carga del servidor realizando ajustes en PHP-FPM. Pero el ajuste de PHP-FPM por sí solo puede no ayudar en ciertos escenarios donde servicios como MySQL o el servidor web también son culpables. En esos casos, realizamos tareas adicionales como:
- Ajuste fino del servidor MySQL y del servidor web como Apache y Nginx.
- Limitar recursos del servidor según el servicio, aplicaciones, usuarios, etc.
- Configurar balanceadores de carga o clústeres para distribuir servicios en servidores con mucho tráfico.
- Monitorear el servidor 24/7 y realizar auditorías periódicas para detectar y resolver problemas.
Conclusión
Hoy vimos cómo nuestros Ingenieros de Soporte solucionan problemas de alta carga debido al servicio PHP-FPM. En los servidores de nuestros clientes, monitoreamos el rendimiento del servidor 24/7 y realizamos ajustes periódicos para asegurar que la carga del servidor se mantenga normal.