El valor de pm.max_children
no es la suma del resto de los valores en la configuración de PHP-FPM. Es un parámetro independiente que define el número máximo total de procesos de trabajo que pueden existir al mismo tiempo, sin importar el estado (activo o inactivo). Vamos a aclarar cómo interactúan los valores:
Detalle de los parámetros:
pm.max_children
:- Es el límite máximo de procesos simultáneos que puede tener el pool.
- Esto incluye tanto procesos que están atendiendo solicitudes como procesos que están inactivos.
- Si se alcanza este límite, nuevas solicitudes tendrán que esperar hasta que un proceso quede disponible.
pm.start_servers
:- Es el número de procesos que se crean inicialmente cuando el servicio PHP-FPM arranca.
pm.min_spare_servers
ypm.max_spare_servers
:- Controlan la cantidad de procesos inactivos que PHP-FPM debe mantener.
pm.min_spare_servers
: Si el número de procesos inactivos cae por debajo de este valor, se crean más procesos.pm.max_spare_servers
: Si el número de procesos inactivos excede este valor, se terminan los procesos sobrantes.
Ejemplo:
Con la siguiente configuración:
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 7
pm.max_children = 20
: Esto significa que en ningún momento el pool puede tener más de 20 procesos (activos o inactivos).pm.start_servers = 5
: Cuando PHP-FPM arranca, comienza con 5 procesos.pm.min_spare_servers = 3
: Si hay menos de 3 procesos inactivos, PHP-FPM creará más.pm.max_spare_servers = 7
: Si hay más de 7 procesos inactivos, PHP-FPM terminará los procesos sobrantes.
Importante:
- La suma de
pm.start_servers
,pm.min_spare_servers
ypm.max_spare_servers
no define ni limita el valor depm.max_children
. pm.max_children
debe ser el valor máximo absoluto que tu servidor puede manejar en función de la memoria disponible.
Si tienes suficiente memoria y deseas aprovecharla mejor, ajusta pm.max_children
para permitir más procesos simultáneos, sin preocuparte por que la suma de los otros valores lo iguale.