В основном, количество процессов, которые php-fpm будет запускать в любое время, очень настраивается, когда вы устанавливаете так, dynamic
как вы делаете. При установке на static
будет ВСЕГДА быть , что многие дочерние процессы , запущенные. Обычно вы устанавливаете динамический режим для экономии ресурсов. Каждый дочерний процесс может обрабатывать один запрос. Верхний предел зависит от того, насколько тяжелым является ваше php-приложение и сколько трафика вы получаете. Вы также должны рассчитать среднее потребление памяти каждым ребенком и убедиться, что вы НИКОГДА не позволите количеству дочерних элементов превысить количество оперативной памяти, установленной на вашем сервере, иначе вы начнете менять местами или даже запускать процессы уничтожения ядра.
; Choose how the process manager will control the number of child processes.
; Possible Values:
; static - a fixed number (pm.max_children) of child processes;
; dynamic - the number of child processes are set dynamically based on the
; following directives:
; pm.max_children - the maximum number of children that can
; be alive at the same time.
; pm.start_servers - the number of children created on startup.
; pm.min_spare_servers - the minimum number of children in 'idle'
; state (waiting to process). If the number
; of 'idle' processes is less than this
; number then some children will be created.
; pm.max_spare_servers - the maximum number of children in 'idle'
; state (waiting to process). If the number
; of 'idle' processes is greater than this
; number then some children will be killed.
; Note: This value is mandatory.
При настройке этих параметров учитывайте следующее:
- Как долго длится ваш средний запрос?
- Какое максимальное количество одновременных посетителей получают сайт (ы)?
- Сколько памяти в среднем потребляет каждый дочерний процесс?
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
чтобы увидеть, сколько памяти имеет каждый работник. взято из community.webcore.cloud/tutorials/…