Cobra Forum

Plesk Panel => Webserver => Topic started by: Suhitha on Sep 26, 2025, 02:19 AM

Title: Websites on PHP-FPM are unavailable or loading slowly: server reached
Post by: Suhitha on Sep 26, 2025, 02:19 AM
Question: Websites on PHP-FPM are unavailable or loading slowly: server reached max_children setting (*), consider raising it


Applicable to:



Symptoms

   
502 Bad Gateway
503 Service Temporarily Unavailable
504 Gateway Time-out

WARNING: [pool example.com] server reached max_children setting (*), consider raising it
 
The message above is usually accompanied with this error:
unable to read what child say: Bad file descriptor (9)

[error] 11456#0: *118348 connect() to unix:///var/www/vhosts/system/example.com/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 203.0.113.2, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:///var/www/vhosts/system/example.com/php-fpm.sock:", host: "example.com"
[error] 20058#0: *4725139 upstream prematurely closed connection while reading response header from upstream, client: 203.0.113.2, server: example.com, request: "POST /path/to/some/file HTTP/2.0", upstream:

Cause

The PHP-FPM pm.max_children limit has been reached by the website(s).


Resolution

Increase the pm.max_children limit for the affected domains:

1.Connect to the Plesk server via SSH

2.Find affected domains using the command below:

Note: The number on the left indicates how many times the pm.max_children limit has been reached by the website.

If a domain is using a dedicated FPM application and has a custom vhosts location, change the path /var/www/vhosts/system/ in the command below:

# grep -r "server reached max_children setting" /var/log/*php*-fpm/error.log | cut -d' ' -f5 | tr -d ']' | sort | uniq -c | sort -nr

100 example.com
50 example.net
25 example.org
<...>


3.Log into Plesk

4.Go to Domains > example.com > PHP Settings > PHP-FPM Settings.

5.Increase the pm.max_children value for the domain and apply the changes. Increase this value for all domains listed in step 2.

Note: In this example, we are setting pm.max_children to 20. To fine tune this setting, visit this KB article.

(https://pix.cobrasoft.org/images/2025/09/26/mceclip0-5.png)

Other options to increase the pm.max_children limit:

Increasing pm.max_children for all domains under a service plan via Plesk

1.Log in to Plesk.

2.Go to Service Plans > plan_name > PHP Settings tab > PHP-FPM Settings section.

3.Increase the pm.max_children value and click Update & Sync.

(https://pix.cobrasoft.org/images/2025/09/26/mceclip0-5.png)


Note: The changes will not be applied to subscriptions if:

- A subscription is not synced with this service plan (Marked with a blue lock in the Subscriptions menu).
- If the permission Hosting performance settings management is granted in service plan settings at Service Plans > plan_name > Permissions tab.


Increasing pm.max_children for one domain via a command-line interface
 


1.Create a php.ini file in domain's system directory /var/www/vhosts/system/example.com/conf/:

# touch /var/www/vhosts/system/example.com/conf/php.ini

2.Open the php.ini file in any text editor (for example, vi editor) and add the following records:

[php-fpm-pool-settings]
pm.max_children = 20

3.Save the changes and close the file.

4.Run the following command to apply the changes:

# /usr/local/psa/bin/php_settings -u