Accueil Forum Actualité Tech et SEO, tutoriels et astuces Les réglages PHP5-FPM – pm.max_children, pm.start_servers, pm.min

Ce sujet a 0 réponse, 1 participant et a été mis à jour par  Houssen Moshinaly, il y a 3 mois et 4 semaines.

Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #682

    Houssen Moshinaly
    Admin bbPress

    Les réglages PHP5-FPM pour les valeurs pm.max_children, pm.start_servers, pm.min_spare_servers et pm.max_spare_servers

    Si vous utilisez Nginx coupé à PHP5-FPM, vous avez surement eu des messages suivants dans vos logs var/log/php5-fpm ou dans var/log/upstart/php5-fpm.

    WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
    
    WARNING: [pool www] server reached pm.max_children setting (30), consider raising it

    Il suffit juste de suivre ces conseils, c’est à dire augmenter ces valeurs, mais quelle est la bonne valeur. Et bien, c’est impossible à dire, car cela dépend de la charge sur votre serveur. Il y a cet article qui donne une commande pour déterminer la quantité de RAM qui est bouffé par chaque script PHP5-FPM. La commande est :

    ps -ylC php-fpm --sort:rss

    Dans les colonnes, vous regardez la colonne RSS et vous aurez la valeur individuelle de la RAM pour chaque script. Par exemple, imaginons que chaque script bouffe 100 Mo en moyenne et donc, vous devez utiliser la formule suivante :

    Valeur de pm.max_children = RAM physique disponible sur votre serveur / Quantité maximale par un script PHP individuel

    Imaginons que vous avez un serveur avec 6 Go de RAM et qu’on prend 100 Mo pour chaque script, alors on arrive grosso merdo à 40 et c’est la valeur que vous devez mettre dans pm.max_children. Oui, car il ne faut jamais laisser PHP5-FPM utiliser toute la RAM disponible, donc laissez 2 Go ou plus de libre si vous avez une base MySQL ou plusieurs sites. Mais cette formule ne marche que dans certains cas, car si vous augmentez trop la valeur de pm.max_children, alors vous aurez de temps en temps une erreur 502 dans Nginx. Et pour ce problème, je n’ai pas encore de solution. Voici mes valeurs pour un serveur avec 8 Go de RAM avec un site avec quelques milliers de visites quotidiennes.

    pm.max_children = 30
    
    pm.start_servers = 15
    
    pm.min_spare_servers = 15
    
    pm.max_spare_servers = 25

    C’est très mal optimisé, car la valeur pm.max_children ne devrait pas être aussi haute et j’ai vu des gros sites qui marchaient avec une valeur de 10 ou de 15.

    Cela suggère qu’il y des scripts PHP qui ont une fuite de mémoire et comme c’est WordPress, c’est surement des plugins codés à la pisse. Donc, il n’y a pas de solution, changez vos propres valeurs pour voir si vous avez toujours les messages d’erreur dans vos logs. Dans mon cas, les messages sont réduits, mais j’ai maintenant cette erreur 502 qui fait planter parfois le site. Concernant WordPress, il y a le plugin Query Monitor qui vous donne pas mal d’informations pour débuguer votre site. Il faut des connaissances de base en développement, mais vous pourrez déterminer s’il y a plugin qui ralentit les requêtes ou des erreurs PHP.

    Si vous avez de bonnes solutions pour avoir les bonnes valeurs et optimiser ce foutu PHP5-FPM, je suis preneur.

    Un article sur Medium qui revient sur les différentes optimisations possibles pour PHP5-FPM. J’ai déjà testé la plupart, mais je découvre l’utilitaire htop qui affiche graphiquement les ressources consommés par le système.

    https://medium.com/@richb_/tweaking-nginx-and-php-fpm-configuration-to-fix-502-bad-gateway-errors-and-optimise-performance-on-17465f41fd87

Affichage de 1 message (sur 1 au total)

Vous devez être connecté pour répondre à ce sujet.

Aller à la barre d’outils