I thought I understood pm = dynamic until I sat down and watched it work in real time. Turns out the whole process manager is one tiny loop, and once you see it, every number in fpm-status suddenly makes sense.
This is what I learned, with real outputs from a real server.
The config
pm = dynamic
pm.max_children = 300 ; hard ceiling on total workers






