php / php/php-src

PHP‑FPM workers exceed pm.max_requests

Ouverte
#23,122 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

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

Description

Description

PHP‑FPM workers consistently exceed the configured pm.max_requests value under sustained load. Even with pm.max_requests = 5000, individual workers regularly process 8000–10,000+ requests before recycling.

$ sudo php-fpm -tt
[07-Aug-2026 20:20:46] NOTICE: [global]
[07-Aug-2026 20:20:46] NOTICE:  pid = /var/run/php-fpm.pid
[07-Aug-2026 20:20:46] NOTICE:  error_log = /var/log/php-fpm/php-fpm.log
[07-Aug-2026 20:20:46] NOTICE:  syslog.ident = php-fpm
[07-Aug-2026 20:20:46] NOTICE:  syslog.facility = 24
[07-Aug-2026 20:20:46] NOTICE:  log_buffering = yes
[07-Aug-2026 20:20:46] NOTICE:  log_level = unknown value
[07-Aug-2026 20:20:46] NOTICE:  log_limit = 1024
[07-Aug-2026 20:20:46] NOTICE:  emergency_restart_interval = 60s
[07-Aug-2026 20:20:46] NOTICE:  emergency_restart_threshold = 10
[07-Aug-2026 20:20:46] NOTICE:  process_control_timeout = 10s
[07-Aug-2026 20:20:46] NOTICE:  process.max = 0
[07-Aug-2026 20:20:46] NOTICE:  process.priority = undefined
[07-Aug-2026 20:20:46] NOTICE:  daemonize = yes
[07-Aug-2026 20:20:46] NOTICE:  rlimit_files = 0
[07-Aug-2026 20:20:46] NOTICE:  rlimit_core = 0
[07-Aug-2026 20:20:46] NOTICE:  events.mechanism = kqueue
[07-Aug-2026 20:20:46] NOTICE:
[07-Aug-2026 20:20:46] NOTICE: [www]
[07-Aug-2026 20:20:46] NOTICE:  prefix = undefined
[07-Aug-2026 20:20:46] NOTICE:  user = www
[07-Aug-2026 20:20:46] NOTICE:  group = www
[07-Aug-2026 20:20:46] NOTICE:  listen = /var/run/php-fpm.sock
[07-Aug-2026 20:20:46] NOTICE:  listen.backlog = -1
[07-Aug-2026 20:20:46] NOTICE:  listen.owner = nginx
[07-Aug-2026 20:20:46] NOTICE:  listen.group = nginx
[07-Aug-2026 20:20:46] NOTICE:  listen.mode = 0660
[07-Aug-2026 20:20:46] NOTICE:  listen.allowed_clients = 127.0.0.1
[07-Aug-2026 20:20:46] NOTICE:  listen.setfib = -1
[07-Aug-2026 20:20:46] NOTICE:  process.priority = undefined
[07-Aug-2026 20:20:46] NOTICE:  process.dumpable = no
[07-Aug-2026 20:20:46] NOTICE:  pm = dynamic
[07-Aug-2026 20:20:46] NOTICE:  pm.max_children = 50
[07-Aug-2026 20:20:46] NOTICE:  pm.start_servers = 10
[07-Aug-2026 20:20:46] NOTICE:  pm.min_spare_servers = 10
[07-Aug-2026 20:20:46] NOTICE:  pm.max_spare_servers = 25
[07-Aug-2026 20:20:46] NOTICE:  pm.max_spawn_rate = 32
[07-Aug-2026 20:20:46] NOTICE:  pm.process_idle_timeout = 10
[07-Aug-2026 20:20:46] NOTICE:  pm.max_requests = 5000
[07-Aug-2026 20:20:46] NOTICE:  pm.status_path = /php-status
[07-Aug-2026 20:20:46] NOTICE:  pm.status_listen = undefined
[07-Aug-2026 20:20:46] NOTICE:  ping.path = undefined
[07-Aug-2026 20:20:46] NOTICE:  ping.response = undefined
[07-Aug-2026 20:20:46] NOTICE:  access.log = undefined
[07-Aug-2026 20:20:46] NOTICE:  access.format = undefined
[07-Aug-2026 20:20:46] NOTICE:  slowlog = undefined
[07-Aug-2026 20:20:46] NOTICE:  request_slowlog_timeout = 0s
[07-Aug-2026 20:20:46] NOTICE:  request_slowlog_trace_depth = 20
[07-Aug-2026 20:20:46] NOTICE:  request_terminate_timeout = 0s
[07-Aug-2026 20:20:46] NOTICE:  request_terminate_timeout_track_finished = no
[07-Aug-2026 20:20:46] NOTICE:  rlimit_files = 0
[07-Aug-2026 20:20:46] NOTICE:  rlimit_core = 0
[07-Aug-2026 20:20:46] NOTICE:  chroot = undefined
[07-Aug-2026 20:20:46] NOTICE:  chdir = undefined
[07-Aug-2026 20:20:46] NOTICE:  catch_workers_output = no
[07-Aug-2026 20:20:46] NOTICE:  decorate_workers_output = yes
[07-Aug-2026 20:20:46] NOTICE:  clear_env = yes
[07-Aug-2026 20:20:46] NOTICE:  security.limit_extensions = .php .phar
[07-Aug-2026 20:20:46] NOTICE:
[07-Aug-2026 20:20:46] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful

Idle Processes status

Image
PHP Version
PHP 8.4.24 (cli) (built: Aug  1 2026 14:53:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.24, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.24, Copyright (c), by Zend Technologies
Operating System

FreeBSD 14.4-RELEASE-p8

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 reproduire le comportement signalé sous charge soutenue avec pm.max_requests=5000, en utilisant la configuration PHP-FPM et les éléments de worker-status fournis dans l’issue. Suivez le comportement de PHP-FPM concernant le comptage des requêtes et le recyclage des workers ; c’est terminé lorsque l’écart est expliqué et que les workers sont recyclés de manière fiable à la limite configurée, avec une couverture du cas observé.

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

Évaluation

Stack technique
php
Domaine
backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
À clarifier
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

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