Ability to disable pm.max_children warning
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 40.4k
- Forks
- 8.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 96
Description
Description
When fpm reaches the pm.max_children value, it issues a warning in the logs of the format:
[pool %s] server reached pm.max_children setting (%d), consider raising it
This message is clearly designed as a hint to server administrators to review the data to see whether this number needs increasing.
However, in multi-server environments such as ours, we use the fpm queue size as an indicator of backpressure, which we then use to automatically scale our servers horizontally. As such, this warning is unnecessary; in fact, it's basically intentional behaviour in our system design. This is at best annoying in the logs, but it also unnecessarily causes data to be written and pushed throughout error reporting systems.
Worse, this is a ZLOG_WARNING rather than ZLOG_DEBUG, so it's not suppressed through regular reporting.
Given this is designed as a way to suggest actions to the sysadmin, it would make sense to provide a way to say "please don't warn me" in the configuration.
I'd like to suggest adding a pm.warn_max_children = no flag into the php-fpm.conf as a way to intentionally suppress these useless messages.
Alternatively, lowering this to a ZLOG_NOTICE (or even ZLOG_DEBUG) would solve this issue for us, but I think would have further flow-on effects; in situations where you really are resource constrained on a single server, it would be easy to miss the notice.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the referenced sections of sapi/fpm/fpm/fpm_process_ctl.c and trace how php-fpm.conf settings are parsed. Compare both pm.max_children warning sites and determine where a suppression setting would apply. Done means the configuration can intentionally disable these warnings while preserving the current default behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, php
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100