Maison  >  Article  >  développement back-end  >  Résoudre le problème de la consommation excessive de ressources mémoire du serveur causée par un trop grand nombre de processus php-fpm dans CentOS7

Résoudre le problème de la consommation excessive de ressources mémoire du serveur causée par un trop grand nombre de processus php-fpm dans CentOS7

藏色散人
藏色散人avant
2020-01-13 14:03:323126parcourir

Avant-propos :

L'utilisation de la mémoire du serveur a été élevée récemment. Après vérification, il a été constaté que cela pouvait être lié au nombre excessif de processus php-fpm. Cet article enregistre mon processus d'optimisation du fichier de configuration php-fpm et ajoute quelques connaissances liées à php-fpm.

Qu'est-ce que php-fpm :

php-fpm est le gestionnaire de processus FastCGI, qui est utilisé pour contrôler la mémoire et le 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

Echo :

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

Selon les informations d'écho, il y a 20 processus php-fpm pendant 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 rechercher 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 :

1. Description des paramètres dans php-fpm.conf :

pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。

2. php -Le mode d'exécution de fpm est défini sur dynamique :

pm = dynamic

3.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 en fonction du paramètre pm.start_servers. Après cela, le nombre de processus de php-fpm sera maintenu entre le nombre spécifié par pm. .min_spare_servers et pm.max_spare_servers.

4. 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.

Pour plus de connaissances sur PHP, veuillez visiter le Tutoriel 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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer