Tryb menedżera procesów PHP
PHP-FPM, czyli FastCGI Process Manager dla PHP, udostępnia kilka trybów zarządzania procesami roboczymi. Tryby te określają, w jaki sposób PHP-FPM będzie tworzyć, utrzymywać i odtwarzać procesy potomne obsługujące żądania PHP. Tryb ustawia się za pomocą dyrektywy konfiguracyjnej pm .

dynamic (domyślny)
W trybie dynamic PHP-FPM dynamicznie dostosowuje liczbę powstających procesów potomnych w oparciu o zapotrzebowanie i kontrolowane przez następujące dyrektywy:

pm.max_children maksymalna liczba dzieci, które mogą jednocześnie żyć
pm.start_servers liczba dzieci utworzonych przy uruchomieniu
pm.min_spare_servers minimalna liczba dzieci w stanie „bezczynności” (oczekujących na przetworzenie). Jeśli liczba „bezczynnych” procesów jest mniejsza niż ta liczba, wówczas zostaną utworzone pewne procesy potomne
pm.max_spare_servers maksymalna liczba dzieci w stanie „bezczynności” (oczekujących na przetworzenie). Jeśli liczba „bezczynnych” procesów jest większa niż ta liczba, niektóre dzieci zostaną zabite
pm.max_spawn_rate maksymalna liczba szybkości odradzania procesów potomnych na raz

Korzyści obejmują automatyczne dostosowywanie liczby procesów potomnych w oparciu o zapotrzebowanie, zapewniając optymalne wykorzystanie zasobów. Jest to szczególnie przydatne w przypadku serwerów o zmiennym obciążeniu.

static
W trybie static PHP-FPM utrzymuje stałą liczbę procesów potomnych. Liczba ta jest określona dyrektywą pm.max_children . Korzyści obejmują spójne wykorzystanie pamięci ze względu na stałą liczbę procesów potomnych. Jest to idealne rozwiązanie dla serwerów o stabilnym obciążeniu.

ondemand
W trybie ondemand przy uruchomieniu nie są tworzone żadne elementy podrzędne. Zamiast tego PHP-FPM będzie uruchamiał procesy potomne tylko wtedy, gdy będzie to potrzebne, tj. gdy nadejdzie żądanie wymagające przetworzenia. Maksymalna liczba dzieci, które mogą jednocześnie żyć, jest kontrolowana przez dyrektywę pm.max_children . Procesy są następnie kończone po określonym czasie bezczynności przez dyrektywę pm.process_idle_timeout . Korzyści obejmują mniejsze zużycie pamięci w okresach małego ruchu lub jego braku. Idealny dla serwerów z sporadycznym obciążeniem lub aplikacji o nieprzewidywalnych wzorcach ruchu.

Najlepszy tryb dla Twojej aplikacji może się różnić w zależności od dostępnych zasobów serwera, wzorców ruchu i specyficznych cech aplikacji. Aby osiągnąć optymalną wydajność, konieczne jest monitorowanie i dostrajanie ustawień.