FPM Status: active processes greater than pm.max_children
@bukka y travaille déjà.
Depuis le 13/5/2024.
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
Given the following FPM Pool configuration the Pool is configured using 1500 static workers and a listen.backlog of 100:
$ cat /etc/php/8.3/fpm/pool.d/backoffice.conf
[backoffice]
listen = /run/php8.3-fpm_backoffice.sock
listen.backlog = 100
pm = static
pm.max_children = 1500
pm.status_path = /php8.3-fpm-status-backoffice.php
; The number of requests each child process should execute before respawning. This can be useful to work around memory leaks
pm.max_requests = 2000
The listen.backlog works like expected on the socket.
$ ss -lxn src == /run/php8.3-fpm_backoffice.sock
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
u_str LISTEN 0 100 /run/php8.3-fpm_backoffice.sock 47129 * 0
Without high traffic total processes reports 1500 as expected.
$ curl -s 127.0.0.1:80/php8.3-fpm-status-backoffice.php
pool: backoffice
process manager: static
start time: 13/May/2024:04:02:02 +0200
start since: 22533
accepted conn: 3057525
listen queue: 0
max listen queue: 0
listen queue len: 0
idle processes: 1460
active processes: 40
total processes: 1500
max active processes: 549
max children reached: 0
slow requests: 0
When generating high concurrent requests using a tool like siege or k6 I can observe the following output from the status page:
$ curl 127.0.0.1:80/php8.3-fpm-status-backoffice.php
pool: backoffice
process manager: static
start time: 08/May/2024:04:02:01 +0200
start since: 19565
accepted conn: 10120636
listen queue: 0
max listen queue: 0
listen queue len: 0
idle processes: 1
active processes: 3347
total processes: 3348
max active processes: 3503
max children reached: 0
slow requests: 0
active processes/total processes/max active processes are way over the defined pm.max_children = 1500.
How can active processes be greater than pm.max_children?
Also max children reachedreports 0.
Relates to: https://github.com/php/php-src/issues/9943#issuecomment-1607206535
PHP Version
PHP 8.3.6
Operating System
Debian 11
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.