Salut,
Depuis 2 semaines, je rencontre des problèmes sur mes instances nextcloud 27.x fonctionnant avec php-fpm 8.1 et 8.2 (et mariadb). Heureusement, je n’ai pas tout mis à jour d’un coup (juste 3).
En résumé: les processus php se coincent et ne répondent plus, mais le service systemd n’est pas marqué comme failed.
Grâce à @oiseauroch , je peux confirmer qu’il s’agit du problème décrit ici: https://github.com/nextcloud/server/issues/39063
J’ai commencé par une énorme rustine :
watch -n 40 'if [ "$(timeout 10 curl --write-out '%{http_code}' --silent --output /dev/null https://domain.tld/login)" != "200" ]; then systemctl restart php8.2-fpm ; echo "" > mail -s "Restart Nextcloud" valentin@domain.tld ; fi'
Sauf que ça gène un peu les utilisateurices de temps en temps et j’ai eu des remontées d’instabilité (code 502 et 501).
J’ai mené plusieurs actions d’optimisation pour contourner le problème:
- augmenté le nombre de processus (initialement max_children à 8)
pm = static
pm.max_children = 15
pm.max_requests = 500
- timeout sur les requêtes de 5 minutes
request_terminate_timeout = 5m
- et une optimisation sans rapport:
php_value[opcache.revalidate_freq]=60
Depuis, j’ai plus de plaintes, et sur l’instance que j’utilise personnellement, tout semble rouler.
Sauf que le contournement request_terminate_timeout = 5m
limite le chargement de gros fichiers à 5 minutes.
Là, je suis parti pour essayer d’augmenter un peu request_terminate_timeout = 1h
sur une instance, histoire de voir ce que ça donne sur ce champs de bataille.
Mon petit doigt me dit que je serais bientôt pas le seul à avoir ce soucis, raison pour laquelle je vous écrit, ça peut vous aider à décider si oui ou non il faut migrer vers une nouvelle version.
Bonne journée,