PHP-FPM's defaults get you serving pages in minutes, then hand you a worker pool that can go from healthy to all-busy in seconds.
The defaults work. Until a downstream database or API slows down, every worker blocks waiting on it, pm.max_children fills, and new requests pile into the socket backlog. Until that backlog reaches listen.backlog and the kernel silently drops connections — at which point nginx logs connect() failed (111: Connection refused) and users get a 502. Until pm.max_requests was left at 0 and a slow memory leak walks the box into the OOM killer. Until request_slowlog_timeout was never set, so you can see that workers are busy but never why. Until OPcache fills and every worker recompiles PHP on every request.
These guides are written for engineers who already run PHP-FPM behind nginx or Apache, not for people learning what FastCGI is. The goal is the mental model of how the pool actually behaves under load, the failure patterns that keep recurring, the monitoring story that catches them before they page anyone, and the runbooks you wish someone had handed you before your last incident.