php / php/php-src

Ability to disable pm.max_children warning

Open
#22,475 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature SAPI: fpm Status: Needs Triage
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

(Source 1, source 2)

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.