


Comment résoudre le problème du manque de mémoire de php-fpm en raison d'un trop grand nombre de processus sous Linux
J'ai constaté que dans le service Linux de mon blog personnel, le service de base de données est souvent indisponible et doit être redémarré avant de pouvoir y accéder normalement, je vais donc vous apporter une solution à ce problème.
Analyser le problème
Après avoir découvert le problème, utilisez d'abord la commande free -m pour vérifier l'état d'exécution actuel du serveur :
Vous pouvez voir la mienne. La mémoire du serveur est de 2 Go, mais il ne reste actuellement que 70 Mo de mémoire disponible et l'utilisation de la mémoire atteint 92 %. Il est très probable que le service de base de données se bloque en raison d'une utilisation élevée de la mémoire.
Continuez à regarder les détails, utilisez la commande supérieure :
Regardez ensuite les détails du processus répertoriés dans le résultat de la commande, en vous concentrant sur la 10ème colonne. de taux d'utilisation de la mémoire :
Il s'avère que l'utilisation du processeur n'est pas élevée et que le problème du processeur est exclu. De plus, on peut voir que le service de base de données. occupe 15,2% de la mémoire et l'utilisation de la mémoire est trop élevée. le processus de base de données (le processus qui occupe le plus de mémoire), provoquant le blocage du service, nous devons donc vérifier l'utilisation détaillée de la mémoire. les processus consomment tellement de mémoire ?
Utiliser la commande :
ps auxw|head -1;ps auxw|sort -rn -k4|head -40
Afficher les 40 principaux processus qui consomment le plus de mémoire :
En regardant le taux d'utilisation de la mémoire dans la quatrième colonne, nous avons constaté qu'en plus du service base de données mysql, le pool de services php-fpm ouvrait trop de processus enfants, occupant plus de la moitié de la mémoire. . Le problème a été trouvé et nous avons commencé à résoudre le problème : défini pour contrôler le nombre de processus du pool de processus php-fpm.
Résoudre le problème
Grâce à divers recherches, il a été constaté que le nombre de processus enfants php-fpm peut être contrôlé en configurant pm.max_children attribut. Tout d'abord, ouvrez le fichier de configuration php-fpm , exécutez la commande :
vi /etc/php-fpm.d/www.conf
Trouvez le champ pm.max_children. et constatez que sa valeur est trop grande :
Comme le montre la figure, la valeur pm.max_children est de 50 et chaque processus occupe 1% à 2,5% de la mémoire , ce qui représente plus de la moitié de la mémoire, nous devons donc réduire sa valeur , le blogueur la définit ici à 25. En même temps, vérifiez les deux attributs suivants :
pm.max_spare_servers : Ceci La valeur indique le nombre maximum de processus inactifs garantis. Si le processus inactif est supérieur à cette valeur, le pm sera nettoyé : Garantit le nombre minimum de processus inactifs est inférieur à cette valeur, créez-en un nouveau. processus enfant ;
Aucune des deux valeurs ne peut être supérieure à la valeur pm.max_children, définissez généralement la valeur pm.max_spare_servers sur pm 60 % à 80 % de la valeur .max_children.
Enfin, redémarrez php-fpm
systemctl restart php-fpm
Vérifiez à nouveau l'utilisation de la mémoire, l'utilisation de la mémoire est beaucoup réduite :
Après avoir observé l'utilisation de la mémoire à plusieurs reprises, nous avons constaté qu'après cette amélioration, la consommation des ressources mémoire du serveur a été considérablement réduite.
ps : Vérifiez le nombre de processus démarrés par php-fpm et la limite de mémoire de chaque processus
1 Utilisez la commande pour vérifier combien de processus php-cgi sont ouverts sur le serveur<. 🎜>
ps -fe |grep "php-fpm"|grep "pool"|wc -l
netstat -anp|grep "php-fpm"|grep "tcp"|grep "pool"|wc -l
Explication détaillée d'exemples de recherche binaire et de recherche binaire dans l'algorithme Java
Explication détaillée du binaire recherche en javascript _compétences javascript
javascript demi-recherche position du caractère dans le tableau (liste ordonnée)_compétences javascript
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

Les principaux avantages du PHP comprennent la facilité d'apprentissage, un soutien solide sur le développement Web, les bibliothèques et les cadres riches, les performances élevées et l'évolutivité, la compatibilité multiplateforme et la rentabilité. 1) Facile à apprendre et à utiliser, adapté aux débutants; 2) une bonne intégration avec les serveurs Web et prend en charge plusieurs bases de données; 3) ont des cadres puissants tels que Laravel; 4) Des performances élevées peuvent être obtenues grâce à l'optimisation; 5) prendre en charge plusieurs systèmes d'exploitation; 6) Open source pour réduire les coûts de développement.

PHP est un langage de script côté serveur utilisé pour le développement Web dynamique et les applications côté serveur. 1.Php est un langage interprété qui ne nécessite pas de compilation et convient au développement rapide. 2. Le code PHP est intégré à HTML, ce qui facilite le développement de pages Web. 3. PHP traite la logique côté serveur, génère une sortie HTML et prend en charge l'interaction utilisateur et le traitement des données. 4. PHP peut interagir avec la base de données, traiter la soumission du formulaire et exécuter les tâches côté serveur.

PHP convient aux systèmes de développement Web et de gestion de contenu, et Python convient aux scripts de science des données, d'apprentissage automatique et d'automatisation. 1.Php fonctionne bien dans la création de sites Web et d'applications rapides et évolutifs et est couramment utilisé dans CMS tel que WordPress. 2. Python a permis de manière remarquable dans les domaines de la science des données et de l'apprentissage automatique, avec des bibliothèques riches telles que Numpy et Tensorflow.

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

PHP a façonné le réseau au cours des dernières décennies et continuera de jouer un rôle important dans le développement Web. 1) PHP est originaire de 1994 et est devenu le premier choix pour les développeurs en raison de sa facilité d'utilisation et de son intégration transparente avec MySQL. 2) Ses fonctions principales incluent la génération de contenu dynamique et l'intégration à la base de données, ce qui permet au site Web d'être mis à jour en temps réel et affiché de manière personnalisée. 3) La large application et l'écosystème de PHP ont motivé son impact à long terme, mais il fait également face à des mises à jour de version et à des défis de sécurité. 4) Les améliorations des performances ces dernières années, telles que la sortie de PHP7, lui permettent de rivaliser avec les langues modernes. 5) À l'avenir, PHP doit faire face à de nouveaux défis tels que la conteneurisation et les microservices, mais sa flexibilité et sa communauté active le rendent adaptable.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip
