php / php/php-src

PHP‑FPM workers exceed pm.max_requests

オープン
#23,122 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Bug SAPI: fpm Status: Needs Triage
主要言語
C
スター
40.4k
フォーク
8.2k
平均マージ
2日 15時間
マージ済み PR(30日)
103

説明

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

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、issue にある PHP-FPM の設定と worker-status の証拠を使用し、pm.max_requests=5000 の持続的な負荷下で報告された挙動を再現します。PHP-FPM のリクエスト数のカウントとワーカーの再利用動作を追跡します。完了条件は、差異が説明され、設定された上限でワーカーが確実に再利用され、観測されたケースをカバーできることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
php
領域
backend
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。