Maison  >  Article  >  développement back-end  >  Une explication détaillée des méthodes d'optimisation php-fpm

Une explication détaillée des méthodes d'optimisation php-fpm

黄舟
黄舟original
2017-07-27 10:24:521518parcourir

Méthode d'optimisation php-fpm

Il existe deux méthodes pour php-fpm L'une consiste à démarrer directement le nombre spécifié de processus php-fpm sans augmenter ni diminuer
L'autre consiste à démarrer A ; Un certain nombre de processus php-fpm sont ouverts à tout moment. Lorsque le volume de requêtes devient important, le nombre de processus php-fpm est augmenté dynamiquement jusqu'à la limite supérieure. Lorsqu'ils sont inactifs, le nombre de processus inactifs est automatiquement libéré à 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.

Certains paramètres à utiliser 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.

Les quatre paramètres suivants signifient :

pm.max_children : le nombre de processus php-fpm ouverts en mode statique, et en mode dynamique il limite php- Le maximum nombre de processus fpm (notez ici que la valeur de pm.max_spare_servers ne peut être qu'inférieure ou égale à pm.max_children)
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 état d'inactivité en mode dynamique.
pm.max_spare_servers : Le nombre maximum de processus php-fpm en état d'inactivité en mode dynamique.

Si dm est défini sur static, seul le paramètre pm.max_children prendra effet. Le système ouvrira le nombre défini de processus php-fpm.

Si dm est réglé sur dynamique, les 4 paramètres 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 le serveur ? En fait, tout comme Apache, le programme PHP en cours d'exécution aura plus ou moins des fuites de mémoire après son exécution. C'est également la raison pour laquelle un processus php-fpm n'occupe qu'environ 3 Mo de mémoire au début, et il passera à 20-30 Mo après une exécution pendant un certain temps. (www. Script School)

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 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 (512*0,8/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.

Et pour les serveurs dotés d'une mémoire relativement volumineuse, le définir sur statique améliorera l'efficacité.
Parce que les changements fréquents du processus php-fpm entraîneront un décalage, donc si la mémoire est suffisamment grande, l'effet statique sera meilleur. La quantité peut également être obtenue selon 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.

Par exemple, s'il s'agit d'un vps de 512 M, les paramètres définis sont les suivants :

Exemple de code :

pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20

peut économiser le plus de mémoire et améliorer l’efficacité de l’exécution.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn