Mejorar el rendimiento PHP-FPM con ‘pm static’

Al configurar PHP-FPM para lograr un alto rendimiento, baja latencia y un uso más estable de CPU y memoria, es común toparse con una configuración por defecto que sitúa el gestor de procesos (PM) de PHP-FPM en ‘dinámico’. Además, existe el consejo habitual de usar ‘ondemand’ en casos de problemas con la memoria disponible. Sin embargo, veamos cómo estas dos opciones de gestión se comparan con mi favorita para configuraciones de alto tráfico: ‘pm static’.

PHP-FPM y sus Similitudes con el CPUFreq Governor

Esta comparación puede parecer fuera de lugar, pero tiene una relación directa con nuestro tema de ajuste de PHP-FPM. Todos hemos enfrentado problemas de CPU lenta, ya sea en una laptop, VM o servidor dedicado. ¿Recuerdan el escalado de frecuencia de la CPU (CPUFreq governor)?

Estos ajustes, disponibles tanto en *nix como en Windows, pueden mejorar el rendimiento y la capacidad de respuesta del sistema al cambiar la configuración del gobernador de la CPU de ‘ondemand’ a ‘performance’. Comparemos ahora las descripciones y busquemos similitudes:

  • Gobernador = ondemand: Escala la frecuencia de la CPU dinámicamente según la carga actual.
  • Gobernador = conservative: Escala la frecuencia de forma más gradual que ondemand.
  • Gobernador = performance: Siempre ejecuta la CPU a la frecuencia máxima.

Utilizando ‘pm static’ para Alcanzar el Máximo Rendimiento de su Servidor

El ajuste de PHP-FPM ‘pm static’ depende en gran medida de cuánta memoria libre tenga su servidor. Si sufre de poca memoria en el servidor, entonces ‘pm ondemand’ o ‘dynamic’ podrían ser mejores opciones. Por otro lado, si tiene memoria disponible, puede evitar gran parte de la sobrecarga del gestor de procesos (PM) de PHP-FPM estableciendo ‘pm static’ al máximo de la capacidad de su servidor.

En otras palabras, ‘pm.static’ debe configurarse al máximo número de procesos PHP-FPM que puedan ejecutarse sin crear problemas de disponibilidad de memoria o presión sobre la caché. También, no tan alto como para abrumar las CPU(s) y tener un montón de operaciones PHP-FPM pendientes.

Cuándo Usar ‘pm ondemand’ y ‘dynamic’

Usar ‘pm dynamic’ puede llevar a errores como:

WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 2 idle, and 69 total children.

En ese caso, el ‘pm.min’ era demasiado bajo y, dado que el tráfico web fluctúa mucho, usar ‘pm dynamic’ puede ser desafiante para sintonizar correctamente. El consejo común es usar ‘pm ondemand’, aunque esto es aún peor, ya que ‘ondemand’ cerrará procesos inactivos hasta llegar a 0 cuando haya poco tráfico, lo que genera tantos problemas de sobrecarga como fluctuaciones de tráfico. A menos, claro, que establezca el tiempo de inactividad extremadamente alto. En ese caso, debería estar usando ‘pm.static’ con un ‘pm.max_requests’ alto.

Sin embargo, ‘pm dynamic’ y especialmente ‘ondemand’ pueden salvarle cuando tiene múltiples piscinas PHP-FPM, por ejemplo, alojando múltiples cuentas de cPanel o sitios web bajo diferentes piscinas.

En resumen

Cuando se trata de PHP-FPM, una vez que comienza a atender tráfico serio, los gestores de procesos ‘ondemand’ y ‘dynamic’ para PHP-FPM pueden limitar el rendimiento debido a la sobrecarga inherente. Conozca su sistema y ajuste sus procesos PHP-FPM para que coincidan con la máxima capacidad de su servidor.

Comience con ‘pm.max_children’ configurado en base al uso máximo de ‘pm dynamic’ o ‘ondemand’ y luego aumente hasta el punto en que la memoria y la CPU puedan procesar sin verse abrumadas. Notará que con ‘pm static’, ya que mantiene todo en memoria, los picos de tráfico a lo largo del tiempo causan menos picos en la CPU y las medias de carga de su servidor serán más suaves.

El tamaño promedio de su proceso PHP-FPM variará según el servidor web, requiriendo ajuste manual. Por lo tanto, los gestores de procesos más automatizados, ‘dynamic’ y ‘ondemand’, son recomendaciones más populares. Espero que este artículo haya sido útil.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×