Comment gérer les erreurs 504 ?

Bonjour,

J'ai un site qui de temps en temps répond bien sur une page .HTML et répond une erreur "504 gateway time out" au bout d'un long moment sur une page .PHP avec un simple .

Un autre site en multisite sur ce même hébergement répond bien.

Ludovic H. d'OVH m'a expliqué (via web@ml) que je saturai les workers PHP, que apache ne répondait plus et que c’était réparé.

OK mais :
Comment prévenir cela ?
Comment gérer la situation ?


<?php echo "OK" ?>


il faut bien comprendre la notion de worker php
si tu as un serveur PHP FPM avec par exemple 10 workers php
une requête php arrive elle est traité par le worker 1, si en même temps une 2ème requête php arrive alors est traité par le worker2 etc...
Etant donné qu'une requête php prends en général quelques millisecondes a être traitée, les workers sont libérés plus rapidement que les requêtes arrivent, ça ne doit pas poser problème.

En revanche si tu as un script php qui bug, par exemple un script php qui fait une grosse requête mysql qui prend 20 secondes et que 10 personnes accèdent à ce script php en même temps, tes 10 workers vont être occupés. Le 11 eme qui va faire une requête php meme un echo "ok"; va devoir attendre son tour et s'il attend trop longtemps => 504 Timeout

Si le problème persiste c'est que tu as des script php qui posent problème.
Il faut donc regarder les log et repérer les premières 504 et regarder les script php appelés avant ces erreurs 504.

A+

Ce serait bien de connaitre le nombre de worker max par hebergement performance. J'imagine que c'est 1 worker par vCPU.

Le soucis c'est qu'il n'y a pas moyen de "killer" les workers comme on peut le faire sur les requetes mysql qui "s'empilent".

Merci pour l'explication détaillé.

Bonjour, j'ai eu deux erreurs 504, ce matin, vers 8 h 15. Y a-t-il une explication ? Merci pour votre réponse. Jean-Christophe