Nginx + php-fpm pendre au hasard

J’ai un site Web créé avec Codeigniter, exécuté sur Ubuntu avec Nginx et PHP-FPM. Cela a bien fonctionné jusqu’à hier soir, quand il a commencé à charger des pages vraiment lentes, donnant parfois 504, d’autres fois chargeant des pages rapidement.

Si je redémarre nginx ou php-fpm, le site fonctionne correctement pendant 20 à 30 secondes, puis le problème se reproduit.

Voici ce que dit le journal des erreurs nginx:

[erreur] 25226 # 25226: * 65 expiration du délai d’attente (110: expiration de la connexion) lors de la lecture de l’en-tête de réponse, client: XXXX, serveur: www.mydomain.ext, demande: “GET / HTTP / 1.1”, en amont: “fastcgi: // unix: /var/run/php/php5.6-fpm.sock:”, hôte: “www.mydomain.ext”

J’ai été googler et jouer avec nginx et php-fpm config pour les dernières heures, mais je ne pouvais pas le résoudre.

Est-ce que quelqu’un sait comment m’aider?

Pour moi, cela ressemble à un problème avec la gestion des processus FPM. Voir ce lien pour plus d’informations. Il semble que vous ayez un nombre statique de processus disponibles pour php-fpm et que le trafic le dépasse. Je faisais face à des problèmes similaires, mais je ne me souviens pas si c’était le message d’erreur exact à l’époque. Mais le comportement était comme vous l’avez expliqué, certaines connexions étaient très lentes (Waiting for fpm?), D’autres étaient destinées à 504.

MISE À JOUR: Pour confirmer ma théorie, vous devriez vérifier le fichier /etc/php5.6/pool.d/www.conf et vérifier cette ligne:

 pm.max_children = X 

Augmenter le nombre et redémarrer fpm. Ensuite, voyez si le problème est résolu.