Dernière mise à jour sur 6 sept. 2023, 13:16:51.
Catégorie:
Serveurs cloud
Si vous utilisez un serveur Web NGinx avec PHP-FPM, vous devrez probablement ajuster les paramètres "prêts à l'emploi" de php-fpm. Si votre fichier php-fpm.log contient l'erreur suivante :
[26-Mar-2018 10:10:04] WARNING: [pool www] server reached pm.max_children setting (35), consider raising it [26-Mar-2018 12:04:52] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
Cela signifie-t-il qu'il n'y a pas assez de processus disponibles pour php-fpm.
pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 4 pm.max_spare_servers = 8
Pour calculer les valeurs correctes, vous devez savoir combien de mémoire un processus occupe. Attention, vous ne pouvez mesurer cela que sur un serveur dont vous savez que le site en question a une consommation mémoire par processus stable, autrement dit pour un environnement d'hébergement mutualisé avec différents sites web et donc une programmation différente, la consommation mémoire par processus PHP fluctuera fortement !
Utilisez la commande suivante (via SSH) pour obtenir une sortie en temps réel des processus et de leur consommation de mémoire :
ps -ylC php-fpm --sort:rssLe nom php-fpm correspond au nom du processus. Il est possible que le nom exact du processus diffère en fonction de la version de PHP sur votre serveur.
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD S 0 24439 1 0 80 0 6364 57236 - ? 00:00:00 php-fpm S 33 24701 24439 2 80 0 61588 63335 - ? 00:04:07 php-fpm S 33 25319 24439 2 80 0 61620 63314 - ? 00:02:35 php-fpmDansnotre cas, il s'agit d'environ 61588 kilo-octets convertis +- 60 Mo par processus.
:ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'
Pour calculer la valeur correcte du nombre de pm.max_children, nous devons voir combien de mémoire le serveur cloud peut avoir pour le processus php-fpm et diviser cela par la taille moyenne en Mo de notre processus que nous venons de demander.
:pm.max_children = 40 pm.start_servers = 15 pm.min_spare_servers = 15 pm.max_spare_servers = 25 pm.max_requests = 500
Redémarrez le service php-fpm et vérifiez si le serveur alloue correctement la mémoire.
Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!