PHP prosessleder modus
PHP-FPM, eller FastCGI Process Manager for PHP, tilbyr flere administrasjonsmoduser for sine arbeidsprosesser. Disse modusene bestemmer hvordan PHP-FPM vil opprette, vedlikeholde og resirkulere de underordnede prosessene som håndterer PHP-forespørsler. Modusen stilles inn ved hjelp av pm konfigurasjonsdirektivet.

dynamic (standard)
I den dynamic modusen justerer PHP-FPM dynamisk antall skapte underordnede prosesser basert på etterspørselen, og kontrollert av følgende direktiver:

pm.max_children maksimalt antall barn som kan være i live samtidig
pm.start_servers antall barn opprettet ved oppstart
pm.min_spare_servers minimum antall barn i "tomgangs"-tilstand (venter på behandling). Hvis antallet 'tomgangsprosesser' er mindre enn dette antallet, vil noen barn bli opprettet
pm.max_spare_servers maksimalt antall barn i "tomgangstilstand" (venter på behandling). Hvis antallet "tomgangsprosesser" er større enn dette antallet, vil noen barn bli drept
pm.max_spawn_rate det maksimale antallet rate for å skape underordnede prosesser på en gang

Fordelene inkluderer automatisk justering av antall underordnede prosesser basert på etterspørsel, noe som sikrer optimal ressursutnyttelse. Dette er spesielt nyttig for servere med varierende belastning.

static
I static modus opprettholder PHP-FPM et fast antall underordnede prosesser. Dette nummeret er spesifisert av pm.max_children -direktivet. Fordelene inkluderer konsekvent minnebruk på grunn av et konstant antall underordnede prosesser. Dette er ideelt for servere med stabil belastning.

ondemand
I ondemand opprettes ingen underordnede ved oppstart. I stedet vil PHP-FPM bare skape underordnede prosesser når det er nødvendig, dvs. når det er en innkommende forespørsel som trenger behandling. Maksimalt antall barn som kan være i live samtidig er kontrollert av pm.max_children -direktivet. Prosesser blir deretter avsluttet etter å ha vært inaktive i en spesifisert tidsperiode av pm.process_idle_timeout -direktivet. Fordelene inkluderer redusert minnebruk i perioder med lite eller ingen trafikk. Ideell for servere med periodisk belastning eller applikasjoner med uforutsigbare trafikkmønstre.

Den beste modusen for applikasjonen din kan variere basert på serverens tilgjengelige ressurser, trafikkmønstre og spesifikke applikasjonsegenskaper. Det er viktig å overvåke og finjustere innstillingene for å oppnå optimal ytelse.