Apache vs. PHP-FPM Bottleneck with Child Processes
Last modified: September 28, 2020
Apache servers that use the
prefork MPM with fewer server instances than the maximum number of PHP-FPM child processes may experience performance issues. This document explains how to resolve this dependency issue.
In the following scenario, the PHP-FPM server’s configuration allows a maximum of 20 PHP-FPM child processes and the Apache server’s configuration allows five server instances.
The following example represents the PHP-FPM server’s configuration file:
The following example represents the Apache server’s configuration file:
If the Apache server receives 20 requests, it immediately passes five of those requests to the available PHP-FPM child processes. After PHP-FPM processes those requests, Apache will pass another five requests to PHP-FPM.
To solve this issue, you must configure Apache to allow enough server instances to handle the maximum number of PHP-FPM child processes.
Set the Start Servers option in WHM’s Global Configuration interface (WHM >> Home >> Service Configuration >> Apache Configuration >> Global Configuration) to a value greater than or equal to the
pm_max_children setting in WHM’s MultiPHP Manager interface (WHM >> Home >> Software >> MultiPHP Manager).