Saltar al contenido

entender correctamente pm.max_children tuning

Solución:

Su cálculo es correcto por lo que he recopilado.

Tener muchas webs en el mismo servidor solo funciona siempre que no todas las web usen todos los recursos disponibles al mismo tiempo. Esto es lo que la gente suele llamar sobreaprovisionamiento.

Sin embargo, sugiero no calcular simplemente pm.max_children alrededor de la RAM disponible, pero alrededor de cuántos trabajadores son realmente necesarios para que las web funcionen correctamente. Comience con algo más bajo y controle el php-fpm.log. Si el max_children se alcanza el ajuste, lo encontrará en el registro y puede aumentarlo.

Además, asegúrese de que los trabajadores PHP solo vivan el tiempo que sea necesario. Por ejemplo, la siguiente configuración permitirá que un grupo use hasta 32 trabajadores PHP si hay una ráfaga de solicitudes, pero cada trabajador saldrá después de 3 segundos de inactividad y liberará RAM valiosa:

pm = ondemand
pm.max_children = 32
pm.process_idle_timeout = 3s

Utilizar el ondemand administrador de procesos si tiene poca RAM. Es un poco más lento que el dynamic pm, pero no desperdicia RAM para sitios web inactivos.

Si desea controlar el número total de procesos PHP, existe una configuración llamada process.max en php-fpm.conf. Nunca lo he usado, pero me parece que podría usarlo para asegurarse de que nunca haya más de un cierto número de trabajadores, independientemente de cómo estén configurados los grupos.

Por cierto, es una muy buena idea usar grupos separados para webs separadas que pertenezcan a usuarios separados. De esa forma no tendrás problemas con los permisos de usuario o con los datos almacenados en caché de otras webs.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *