php / php/php-src

New config to adjust timeouts between NGINX and PHP-FPM (fix PHP zombie process)

Ouverte
#14,548 11 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Feature SAPI: fpm
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

Description

image

Hi,

I have a question that I haven't found the answer online. I made this graph to illustrate the situation. When there are many requests waiting in the backlog queue (because the workers are busy), a time desynchronization happens between NGINX and PHP-FPM.

The PHP-FPM continues getting the requests from the backlog queue even though NGINX has already answered the client with 504 response.

This is a waste of resources, as the PHP result will never reach NGINX, as NGINX has already responded to the request with 504 to the client

When this happens the new requests receives a timeout because they go to the end of the queue and are processed with delay

If there is a configuration that takes into account the time that the process spends in the backlog queue, these "zombie" processes do not even need to be processed if they have already reached the timeout limit

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par étudier la gestion de la file d’attente de PHP-FPM et son interaction avec les timeouts de NGINX, comme décrit dans l’issue. Déterminez si le comportement de configuration demandé est réalisable et définissez comment doivent être traitées les requêtes qui ont déjà dépassé le timeout du client. Le travail est considéré comme terminé lorsqu’une conception de configuration validée d’un commun accord est disponible avec un scénario de timeout validé.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
nginx, php
Domaine
backend, performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.