Apache HTTP server version 2.4, Understanding and Optimizing Apache 2.4 and setting error now!mpm_common
The Multi-Processing Module implements a pre-forking web server.The size of the server pool is managed by a parent process.It's appropriate for sites that need to avoid threading.It's the best MPM for isolating each request so that there won't be a problem with a single request.
It is not necessary to adjust the configuration directives of the MPM.MaxRequestWorkers should be large enough to handle as many simultaneous requests as you expect, but small enough that there is enough physical RAM for all processes.
Child processes which listen for connections and serve them when they arrive are launched by a single control process.Apache httpd tries to maintain several spare server processes, which are ready to serve incoming requests.Clients don't need to wait for a new child process to be forked before they can serve their requests.
The Startservers, MinSpareServers and MaxRequestWorkers are used to regulate how the parent process creates children to serve requests.Most sites don't need to adjust these directives from their default values because Apache httpd is self-regulating.Sites with limited memory may need to decrease MaxRequestWorkers in order to keep the server from being thrashed.The performance hints documentation provides more information about tuning process creation.
The child processes are launched by Apache httpd, which is a less-privileged user, in order to bind to port 80.The Apache httpd child processes use the User and Group directives to set their privileges.The child processes need to be able to read all of the content that will be served, but should have as few privileges as possible.
The server can recycle processes by killing old ones and launching new ones.
When there are multiple listening sockets, this MPM uses the mpm-accept mutex to serialize access to incoming connections.The implementation aspects of this mutex can be configured.There is more information in the performance hints documentation.
The maximum number of child server processes is set by the MaxSpareServers directive.There is a process that is not handling a request.The parent process will kill off excess processes if there are more than MaxSpareServers.
It should only be necessary on busy sites.It's almost always a bad idea to set this to a large number.The value will be adjusted to MinSpareServers + 1 if you try to set it equal to or lower than that.