Websites that have PHP handler set as FPM application served by Apache or FPM application served by nginx at Domains > example.com > PHP Settings experience one of the following issues:
not accessible (permanently or periodically) with a 50x error in a web-browser:
502 Bad Gateway
503 Service Temporarily Unavailable
504 Gateway Time-out
The following message appears in the PHP-FPM error logfile
(where XX is a PHP version used by the websites):
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)
If nginx is enabled on the server, one of the following error messages may appear in domain's error logfile
[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:
pm.max_children has been reached by the website(s).
pm.max_children limit for the affected domains:
Connect to the Plesk server via SSH.
Find affected domains using the command below:
Note: The number on the left indicates how many times the
pm.max_childrenlimit 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 /var/www/vhosts/system/*/logs/php-fpm_error.log | cut -d' ' -f5 | tr -d ']' | sort | uniq -c | sort -nr
Go to Domains > example.com > PHP Settings > PHP-FPM Settings.
pm.max_childrenvalue 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_childrento 20. To fine tune this setting, visit this KB article.
Other options to increase the