Событие MPM - это не совсем тот же дизайн, что и Nginx, но он был явно разработан, чтобы сделать keepalives более гибким и быстрее отправлять статические файлы. Я понимаю, что Event MPM является немного неправильным, потому что:
- Хотя соединение передается в kqueue/epoll,
- некоторые очень важные модули, такие как mod_gzip и mod_ssl, будут блокировать/потреблять поток до тех пор, пока не будет выполнен ответ,
- и это проблема для больших файлов, но, вероятно, не для PHP-сгенерированных HTML-документов и т.д.
К сожалению, Apache продолжает терять рыночные позиции, и большинство эталонных тестов ущемляют событие MPM. Являются ли эталонные ошибки ошибочными, или это событие MPM действительно плохо влияет на Nginx? Даже с этими ограничениями, при нормальном трафике (не вредоносных) и меньших файлах, он должен быть несколько конкурентным с Nginx. Например, он должен быть конкурентным, служащим PHP-сгенерированными документами через php-fpm на медленных соединениях, потому что документ будет буферизован (даже если он был ssl'd и gzip'd) и отправлен асинхронно. Как SSL, так и не SSL-соединения с использованием сжатия или не должны работать значимо иначе, чем в Nginx при такой нагрузке.
Так почему же он не светит в разных тестах? Что с этим не так? Или что не так с бенчмарками? Является ли основным сайтом его использование в качестве апелляции к полномочиям, которые он может выполнять?