Si vous avez déployé un LEMP (Linux, NGINX, MySQL / MariaDB, et PHP), alors vous utilisez probablement FastCGI mandataire dans NGINX (en tant que serveur HTTP), pour le traitement PHP. PHP-FPM (un acronyme de Gestionnaire de processus FastCGI) est une alternative très utilisée et performante PHP FastCGI la mise en oeuvre.

Voici les guides utiles sur la mise en place Pile LEMP sous Linux.

Récemment, tous nos PHP sites Web sur l’un de nos LEMP les serveurs Web sont devenus lents et ont finalement cessé de répondre lors de la connexion au serveur. nous avons découvert que le système manquait de RAM: PHP-FPM avait consommé la plupart de la RAM, comme indiqué dans la capture d’écran suivante (glances – outil de surveillance du système).

$ glances
Glances - Outil De Surveillance Du Système
Glances – Outil De Surveillance Du Système

Dans cet article, nous montrerons comment éviter PHP-FPM de consommer trop ou toute la mémoire de votre système (RAM) sous Linux. À la fin de ce guide, vous apprendrez à réduire PHP-FPM consommation de mémoire de 50% ou plus.

Réduire l’utilisation de la mémoire PHP-FPM

Après avoir fait quelques recherches sur Internet, nous avons découvert que nous devions reconfigurer le PHP-FPM gestionnaire de processus et certains aspects de celui-ci pour réduire la consommation de mémoire de PHP-FPM dans le fichier de configuration du pool.

Publicité

Le pool par défaut est www et son fichier de configuration se trouve à /etc/php-fpm.d/www.conf (sur CentOS / RHEL / Fedora) ou /etc/php/7.4/fpm/pool.d/www.conf (sur Ubuntu / Debian / Mint).

$ sudo vim /etc/php-fpm.d/www.conf             [On CentOS/RHEL/Fedora]
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf    [On Ubuntu/Debian/Mint]

Recherchez les directives suivantes et définissez leur valeur en fonction de votre cas d’utilisation. Pour les directives commentées, vous devez les décommenter.

pm = ondemand
pm.max_children = 80
pm.process_idle_timeout = 10s
pm.max_requests = 200

Expliquons brièvement les directives ci-dessus et leurs valeurs. Le pm détermine comment le gestionnaire de processus contrôlera le nombre de processus enfants. La méthode par défaut est dynamique, ce qui signifie que le nombre d’enfants (processus enfants) est défini dynamiquement en fonction de certaines autres directives, notamment pm.max_children qui définit le nombre maximum d’enfants qui peuvent être vivants en même temps.

Le gestionnaire de processus le plus idéal est le sur demande schéma dans lequel aucun processus enfant n’est créé au démarrage mais est généré à la demande. Les processus enfants ne sont fourchus que lorsque de nouvelles requêtes se connecteront en fonction du pm.max_children et pm.process_idle_timeout qui définit le nombre de secondes après lequel un processus inactif sera tué.

Dernier point mais non le moindre, nous devons définir le pm.max_requests paramètre qui définit le nombre de requêtes que chaque processus enfant doit exécuter avant de réapparaître. Notez que ce paramètre peut également être utilisé comme solution de contournement pour les fuites de mémoire dans les bibliothèques tierces.

Référence: Une meilleure façon d’exécuter PHP-FPM.

Après avoir fait ces configurations ci-dessus, j’ai remarqué RAM l’utilisation est maintenant correcte sur notre serveur. Avez-vous des idées à partager sur ce sujet ou des questions? Contactez-nous via le formulaire de commentaires ci-dessous.

Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer:

TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint! pour rechercher ou parcourir les milliers d’articles publiés disponibles GRATUITEMENT à tous.

Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en guise de remerciement.

Soutenez-Nous

Nous sommes reconnaissants de votre soutien sans fin.

.

Rate this post
Publicité
Article précédentLes détaillants indiens hors ligne affirment que Samsung favorise les ventes en ligne
Article suivantSous la caméra d’écran pour iPhone? Pas de sitôt / Monde de l’information numérique
Avatar De Violette Laurent
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici