php / php/php-src

PHP‑FPM workers exceed pm.max_requests

Aperta
#23,122 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug SAPI: fpm Status: Needs Triage
Lingua principale
C
Stelle
40.4k
Fork
8.1k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo il comportamento segnalato sotto carico sostenuto con pm.max_requests=5000, usando la configurazione PHP-FPM e le evidenze di worker-status presenti nell'issue. Traccia il comportamento del conteggio delle richieste e del riciclo dei worker di PHP-FPM; il lavoro è completato quando la discrepanza è spiegata e i worker vengono riciclati in modo affidabile al limite configurato, con la copertura del caso osservato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php
Ambito
backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.