Некоторые различия MPM-модулей Apache по производительности:
- Prefork MPM. 12 Каждый дочерний процесс может обрабатывать только один запрос одновременно. 1 Пока число запросов меньше числа процессов, этот MPM работает быстро. 3 Однако производительность быстро падает, когда число запросов начинает превосходить число процессов. 3 Каждый процесс потребляет значительный объём RAM, поэтому этот MPM сложно поддаётся масштабированию. 3
- Worker MPM. 12 Создаёт несколько потоков внутри одного процесса, каждый из которых обрабатывает отдельное соединение. 1 Потоки значительно более эффективны, чем процессы, поэтому Worker MPM масштабируется значительно лучше, чем Prefork MPM. 3 Так как потоков больше, чем процессов, новое соединение может быть сразу обработано свободным потоком, а не ждать, пока освободится процесс. 3
- Event MPM. 34 Похож на Worker MPM, но оптимизирован под работу с keep-alive соединениями. 3 Mpm_event выделяет отдельные потоки для keep-alive соединений и отдельные потоки для активных соединений. 3 Это позволяет модулю не погрязнуть в keep-alive соединениях, что необходимо для быстрой работы. 3
Выбор MPM зависит от конкретных потребностей сайта. 2 Для сайтов с низким трафиком или требованиями совместимости может подойти Prefork MPM, а для сайтов с высоким трафиком — Worker MPM. 2