Archive for April, 2011

Apache MPMs and Prefork

Multi-Processing Modules (MPMs)

Multi-Processing Modules (MPMs) are responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests.

MPMs — These modules are only available with Apache 2.x. It is important to remember that only one of these modules can be enabled for Apache 2.0 and 2.2. MPMs allow you to fine-tune how resources are allocated when serving HTTP requests. EasyApache will automatically enable or disable Zend Thread Safe support in PHP, depending upon which MPM you select.

Prefork — This MPM is recommended by cPanel. It causes Apache to fork before requests are made.

Important: If you are using libphp4 or libphp5, you must select Prefork.
Event — Divides the task of serving a single HTTP request across multiple threads.

Worker — Apache forks several times to prevent a single crash from killing the entire Apache process, then each forked process creates numerous threads.

Once the server has been compiled, it is possible to determine which MPM was chosen by using ./httpd -l. This command will list every module that is compiled into the server, including the MPM.

Reference: http://httpd.apache.org/docs/2.0/mod/prefork.html

« Prev