Choose pm.dynamic for moderate sites and pm.static for high-traffic sites where you have measured the memory cost per worker.
Calculate pm.max_children as (available RAM × 0.7) / average PHP-FPM memory per child. Use pm.process_idle_timeout on dynamic mode to keep memory pressure low.
Set pm.max_requests to recycle workers periodically — protects against slow memory leaks in long-running fibers or extension code.