Ever wondered what are all these MPMs? Let us find out.
1. Apache MPM-ITK: is based on the traditional prefork MPM, which means it’s non-threaded; in short, this means you can run non-thread-aware code (like many PHP extensions) without problems. On the other hand, you lose out to any performance benefit you’d get with threads, of course; you’d have to decide for yourself if that’s worth it or not. You will also take an additional performance hit over prefork, since there’s an extra fork per request.
• allows you to run each of your vhost under a separate uid and gid
2. Apache MPM-Event: is designed to allow more requests to be served simultaneously by passing off some processing work to supporting threads, freeing up the main threads to work on new requests. It is based on the worker MPM, which implements a hybrid multi-process multi-threaded server. Run-time configuration directives are identical to those provided by worker.
• multi-process multi-threaded server
3. Apache MPM-Worker: implements a hybrid multi-process multi-threaded server. By using threads to serve requests, it is able to serve a large number of requests with fewer system resources than a process-based server.
• stability of a process-based server by keeping multiple processes available, each with many threads
4. Apache MPM-Prefork: implements a non-threaded, pre-forking web server. Each server process may answer incoming requests, and a parent process manages the size of the server pool.
• for sites that need to avoid threading for compatibility with non-thread-safe libraries.
• best MPM for isolating each request, so that a problem with a single request will not affect any other.