Maison >développement back-end >tutoriel php >Deux modes de gestion de processus en PHP-FPM
Il existe deux modes de gestion de processus de php-fpm. Le nombre de processus de php-fpm peut également être divisé en dynamique et statique selon les paramètres. L'une consiste à démarrer directement un nombre spécifié de processus php-fpm sans l'augmenter ou le diminuer ; l'autre consiste à démarrer un certain nombre de processus php-fpm au début, et lorsque le volume de requêtes devient plus important, augmenter dynamiquement le php-fpm. processus. Comptez jusqu'à la limite supérieure et libérez automatiquement les processus inactifs lorsqu'ils sont inactifs. Le nombre de processus inactifs atteint une limite inférieure.
Ces deux méthodes d'exécution différentes peuvent être ajustées en fonction des besoins réels du serveur.
Parlons de quelques paramètres impliqués ici. Ce sont pm, pm.max_children, pm.start_servers, pm.min_spare_servers et pm.max_spare_servers.
PM indique quelle méthode utiliser. Vous avez le choix entre deux valeurs, statique ou dynamique.
Dans les anciennes versions, la dynamique était appelée apache-like. Veuillez prêter attention aux instructions données dans le fichier de configuration. La méthode de traitement statique par défaut de PHP5.3php-fpm fera que le processus php-cgi occupera de la mémoire pendant une longue période et ne pourra pas être libéré. C'est également l'une des raisons des erreurs nginx. Par conséquent, la méthode de traitement de php-fpm. peut être changé en mode Apache.
Les quatre paramètres suivants signifient : pm.max_children : Le nombre de processus php-fpm ouverts en mode statique.
pm.start_servers : Le nombre de processus php-fpm démarrant en mode dynamique.
pm.min_spare_servers : Le nombre minimum de processus php-fpm en mode dynamique.
pm.max_spare_servers : Le nombre maximum de processus php-fpm en mode dynamique. Si dm est défini sur static, alors seul le paramètre pm.max_children prend effet. Le système ouvrira le nombre défini de processus php-fpm.
Si dm est défini sur dynamique, alors le paramètre pm.max_children ne sera pas valide et les trois paramètres suivants prendront effet. Le système démarrera les processus php-fpm pm.start_servers lorsque php-fpm commencera à s'exécuter, puis ajustera dynamiquement le nombre de processus php-fpm entre pm.min_spare_servers et pm.max_spare_servers en fonction des besoins du système.
Alors, quelle méthode d'exécution est la meilleure pour notre serveur ? En fait, comme Apache, le programme PHP que nous exécutons aura plus ou moins des fuites de mémoire après son exécution.
C'est aussi la raison pour laquelle un processus php-fpm n'occupe qu'environ 3 Mo de mémoire au début, et il augmentera jusqu'à 20-30 Mo après avoir été exécuté pendant un certain temps. Par conséquent, la méthode dynamique mettra fin aux processus redondants et pourra recycler et libérer de la mémoire. Il est donc recommandé de l'utiliser sur des serveurs ou des VPS avec moins de mémoire. Le montant maximum spécifique est obtenu sur la base de la mémoire/20 M. Par exemple, pour un VPS de 512 Mo, il est recommandé de définir pm.max_spare_servers sur 20. Quant à pm.min_spare_servers, il est recommandé de le paramétrer en fonction de la charge du serveur. Une valeur plus adaptée est comprise entre 5 et 10.
Pour les serveurs dotés d'une mémoire relativement volumineuse, le définir sur statique améliorera l'efficacité. Étant donné que les changements fréquents du processus php-fpm entraîneront un décalage, il sera préférable d'activer la fonction statique si la mémoire est suffisamment grande. La quantité peut également être obtenue sur la base de la mémoire/30M. Par exemple, un serveur avec 2 Go de mémoire peut être défini sur 50 ; un serveur avec 4 Go de mémoire peut être défini sur 100, etc.
Recommandations associées :
php-fpm comment configurer le fichier
exemple de code de statistiques d'état d'ouverture php-fpm
Explication détaillée de l'exploration du pool de processus php-FPM
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!