PHP-FPM (FastCGI Process Manager) est le gestionnaire de processus qui exécute le code PHP en production : un processus maître pilote un pool de workers, chaque worker traitant une requête à la fois. Le serveur web (Apache, Nginx) ne fait que relayer les requêtes vers ce pool — c'est donc le pool, et lui seul, qui fixe la capacité réelle de l'application.
Un Pool de Workers
Chaque worker est un processus PHP complet, réutilisé de requête en requête — c'est ce qui rend PHP-FPM rapide et stable. Le paramètre clé est pm.max_children : il plafonne le nombre de requêtes PHP traitées simultanément. La requête excédentaire attend qu'un worker se libère, quelle que soit la puissance du serveur.
Le Dimensionnement Se Calcule
Chaque worker consomme sa propre mémoire — souvent 50 à 100 Mo pour une application moderne. Le bon nombre de workers se déduit d'une équation mesurée : mémoire disponible divisée par la taille réelle d'un worker, en vérifiant que le CPU suit. Des valeurs posées au hasard produisent soit des files d'attente, soit des crashs mémoire.
PHP-FPM est le goulot d'étranglement le plus souvent ignoré des applications PHP : tant que son pool n'est pas dimensionné sur des mesures réelles, optimiser le reste de la pile ne sert à rien.