Maison  >  Article  >  développement back-end  >  Que faire s'il y a trop de processus php-fpm

Que faire s'il y a trop de processus php-fpm

藏色散人
藏色散人original
2021-06-15 09:17:053769parcourir

La solution au problème du trop grand nombre de processus php-fpm : sauvegardez d'abord le fichier de configuration d'origine ; puis utilisez vim pour ouvrir le fichier de configuration ; puis modifiez les paramètres de configuration et enfin redémarrez le serveur.

Que faire s'il y a trop de processus php-fpm

L'environnement d'exploitation de cet article : système CentOS 7, version PHP7.1, ordinateur DELL G3

Pourquoi y a-t-il aussi gérer de nombreux processus php-fpm ?

Résoudre le problème de consommation excessive des ressources mémoire du serveur dans CentOS 7 en raison d'un trop grand nombre de processus php-fpm

Qu'est-ce que php-fpm :

php-fpm est le gestionnaire de processus FastCGI, utilisé pour contrôler la mémoire et les processus de PHP.

Environnement d'exploitation :

CentOS 7

Vérification du problème :

Vérifiez d'abord le nombre total de processus php :

pstree|grep php-fpm

Réponse :

|-php-fpm---20*[php-fpm]

Selon la réponse Les informations affichées montrent qu'il y a 20 processus php-fpm lors de la requête.

Vous pouvez également lister les 50 principaux processus qui consomment le plus de mémoire via la commande suivante :

ps auxw|head -1;ps auxw|sort -rn -k4|head -50

Processus de solution :

Ci-dessous, nous modifions le fichier de configuration pour optimiser php-fpm afin de réduire l'utilisation de la mémoire.

Mon fichier de configuration php-fpm est dans le répertoire …/server/php/etc/, entrez dans ce répertoire.

Sauvegardez d'abord le fichier de configuration d'origine :

cp php-fpm.conf php-fpm.conf.bak

Remarque : après avoir utilisé vim pour ouvrir le fichier de configuration, appuyez sur la touche Échap, puis saisissez "/", puis saisissez "xxx" pour recherchez la chaîne "xxx".

Les paramètres de configuration spécifiques sont les suivants :

pm.max_children = 100改为:pm.max_children = 25
pm.start_servers = 20改为pm.start_servers = 5
pm.min_spare_servers = 5改为pm.min_spare_servers = 2
pm.max_spare_servers = 35改为pm.max_spare_servers = 10

Redémarrez le serveur :

reboot

Après le redémarrage, vous pouvez constater que l'utilisation de la mémoire est inférieure à celle d'avant.

Remarque :

Explication des paramètres dans php-fpm.conf :

pm.max_children : Le nombre de processus php-fpm démarrés 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.

Lorsque vous effectuez les réglages ci-dessus, j'ai défini le mode d'exécution de php-fpm sur dynamique :

pm = dynamique

php-fpm a deux modes d'exécution :

L'un est statique et l'autre est dynamique. S'il est défini sur statique, seul le paramètre pm.max_children prendra effet. S'ils sont définis sur dynamique, les trois paramètres pm.start_servers, pm.min_spare_servers et pm.max_spare_servers prendront effet. Après l'avoir défini sur dynamique, lorsque php-fpm démarre, il démarrera le nombre de processus correspondant selon le paramètre pm.start_servers. Après cela, le nombre de processus php-fpm sera maintenu entre le nombre spécifié par pm. min_spare_servers et pm.max_spare_servers.

Comment choisir d'utiliser le mode d'exécution statique ou dynamique de php-fpm :

Le mode d'exécution dynamique de php-fpm permet à php-fpm de libérer les processus redondants, économisant ainsi les ressources mémoire.

La méthode d'exécution statique de php-fpm ne permet pas à php-fpm de libérer plus que des processus, évitant ainsi le démarrage ou l'arrêt fréquent du processus php-fpm, réduisant ainsi le temps de réponse du serveur dans certains cas.

Apprentissage recommandé : "Tutoriel vidéo PHP"

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