Httpd worker MPM Configuration: Difference between revisions
No edit summary |
|||
Line 35: | Line 35: | ||
=MaxClients= | =MaxClients= | ||
* http://httpd.apache.org/docs/current/mod/mpm_common.html#maxclients | |||
MaxClients represents the maximum number of connections that will be processed simultaneously ''by the entire server'', seen as the sum of all active children processes. The default value is 400 = 16 ([[#ServerLimit|ServerLimit]]) * 25 ([[#ThreadsPerChild|ThreadsPerChild]]). The directive restricts the total number of threads that will be available to serve clients. | |||
Any connection attempts over the MaxClients limit will normally be queued, up to a number based on the [[#ListenBacklog|ListenBacklog]] directive. Once a child process is freed at the end of a different request, the connection will then be serviced. | |||
Even if ServerLimit is set to a high value (ThreadPerChild left to default), the number of concurrent connection ''is'' limited by MaxClients. This was actually tested and proven. | |||
!Idiosyncrasies | |||
* MaxClient must be at least equals with ThreadPerChild. If not, httpd will warn at startup and automatically adjust the value to be equals with ThreadPerChild. | |||
* MaxClient must be an integer multiple of ThreadsPerChild. If it's not, it will be adjusted automatically: | |||
{{{ | |||
MaxClients (12) is not an integer multiple of ThreadsPerChild (10), lowering MaxClients to 10 | |||
}}} | |||
=ServerLimit= | =ServerLimit= | ||
=ThreadLimit= | =ThreadLimit= |
Revision as of 02:17, 2 January 2017
Internal
Overview
Diagram
The configuration elements described below are represented on the mod_jk Concepts Diagram.
Enabling woker MPM Mode
If you configure httpd yourself, make sure you compiled it with worker MPM support.
If you use Red Hat EWS, worker support comes pre-compiled into $APACHE_HOME/sbin/httpd.worker, make sure the start script is using that.
For more details about compiling httpd with the right MPM mode, see:
ThreadsPerChild
StartServers
MinSpareThreads
MaxSpareThreads
MaxClients
MaxClients represents the maximum number of connections that will be processed simultaneously by the entire server, seen as the sum of all active children processes. The default value is 400 = 16 (ServerLimit) * 25 (ThreadsPerChild). The directive restricts the total number of threads that will be available to serve clients.
Any connection attempts over the MaxClients limit will normally be queued, up to a number based on the ListenBacklog directive. Once a child process is freed at the end of a different request, the connection will then be serviced.
Even if ServerLimit is set to a high value (ThreadPerChild left to default), the number of concurrent connection is limited by MaxClients. This was actually tested and proven.
!Idiosyncrasies
- MaxClient must be at least equals with ThreadPerChild. If not, httpd will warn at startup and automatically adjust the value to be equals with ThreadPerChild.
- MaxClient must be an integer multiple of ThreadsPerChild. If it's not, it will be adjusted automatically:
{{{
MaxClients (12) is not an integer multiple of ThreadsPerChild (10), lowering MaxClients to 10
}}}