Thursday, November 15, 2007

Apache - Multi-Processing Modules (MPMs)

MPMs are Responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests. For Linux, two types: worker (threaded MPM) and prefork (non-threaded MPM)

worker MPM
prefork MPM

How it works

Uses multiple child processes. It's multi-threaded within each child, and each thread handles a single connection.

Uses multiple child processes, each child handles one connection at a time.


fast and highly scalable

speed is comparable to that of worker


Memory footprint is comparatively low

Memory usage is high, and more traffic leads to greater memory usage


less tolerant of faulty modules, and a faulty thread can affect all the threads in a child process.

highly tolerant of faulty modules and crashing children

Suited for

multiple processors

single or double CPU systems