В течение многих лет я использовал mpm-prefork модуль, поскольку я понял, что это предпочтительный рабочий для Apache 2 и 1.3.
Теперь я буду устанавливать несколько новых серверов Apache и буду использовать более новую версию 2.4, с которой мероприятие основанный на mpm, который использует epoll / kqueue.
Я знаю, что в последние несколько лет системы на основе событий стали очень популярны (например, nginx, lighttpd, node.js), поэтому, поскольку mpm-event теперь стабильно в Apache, это предпочтительный модуль для многопроцессорной обработки?
Я также обратил внимание на комментарий со страницы документации mpm-event:
Улучшенная обработка соединений пока не работает для некоторых фильтров соединений, в частности для SSL. Для соединений SSL этот MPM будет возвращаться к поведению рабочего MPM и резервирует один рабочий поток для каждого соединения.
Наш основной сайт принудительно устанавливает SSL-соединение, поэтому ясно, что мы не выиграем от улучшенной обработки соединения, связанной с сохранением активности, но правильно ли я понимаю, что некоторое улучшение производительности все равно будет, поскольку будет меньше потоковой передачи?
Префорк MPM не был «предпочтительным» MPM в течение многих лет.
Причина, по которой он по-прежнему используется по умолчанию для многих дистрибутивов, заключается в том, что некоторые сторонние библиотеки имеют проблемы с потоковой передачей в рабочем MPM (который имеет был предпочтительным MPM с версии 2.2).
Не модули вроде mod_php, который вполне потокобезопасен, а библиотеки используемый модулями, такими как mod_php, такими как mysqli и т. д.
В версии 2.4 мы переключились на событие STABLE MPM.
Релиз все еще очень новый, и документация не была полностью обновлена, чтобы отразить это.
Как и в течение многих лет, если prefork MPM вызывает у вас горе, переключитесь на многопоточное обслуживание и запустите динамический контент через fastCGI.