Webserver benchmark: сравнение производительности Nginx Unit, PHP-FPM и Apache

preview_player
Показать описание
В этом видео мы столкнём лбами самые популярные сервера для работы с PHP.
В сравнении участвуют: Nginx Unit 1.7, PHP-FPM, Apache 2.4 с mod_php.
Для всех претендентов этого benchmark созданы максимально равные условия, используются общие настройки PHP и количество процессов.
Система: Ubuntu 18.04.

Рекомендации по теме
Комментарии
Автор

Шикарный тест. Респект! Спасибо. Мы как раз большую часть проектов на php-fpm перевели с unix-сокетами.

mistertroll
Автор

Здорово! Побольше подобного материала!

Сергей-ъды
Автор

В данном тесте по большей части фактически 4 раза протестировали производительность PHP. По сравнению с работой интерпретатора, все остальное занимает незначительное количество времени. Пытаться же выяснить разницу в сетевой части с помощью утилиты "ab", которая для обработки соединений использует всего один поток с select() и заведомо работает с соединениями медленнее - дело бессмысленное.

Для правильного измерения эффективности сетевой части сервера - клиент должен обладать на порядок большей производительностью, дабы не вносить искажений и своих собственных задержек в тест. В противном случае можно наткнуться на смешные аномалии. Я в своей практике видел как включение (!) access_log-ов в nginx увеличивало (!) RPS в тесте. Детальное изучение той аномалии показало, что включение записи в лог на каждый запрос подтормаживает обработку запроса ровно настолько, насколько требуется чтобы медленный "ab" успел прислать следующий запрос и таким образом рабочий процесс nginx не успевал провалиться в ядро ждать на epoll_wait(), что в результате оказывалось эффективнее даже не смотря на дополнительный вызов write().


ValentinBartenev
Автор

Готова вторая версия теста, с уточнениями и доработками, скоро на канале!

NickLavlinsky
Автор

Спасибо за интересные материалы.
До этого мне ничего не было известно про Nginx Unit и стало интересно. Сразу выяснилось, что с недавних пор под ним можно запускать node.js (пишу под ноду).
И это мне не до конца понятно. Зачем Nginx будет перенаправлять запрос на Nginx Unit, который запустит node.js, если Nginx может сразу перенаправлять на node.js?
Поясните пожалуйста, если Вас не затруднит.

ВалентинаСахарова-ьб
Автор

Какие изменения вносились в конфиг Апача?

AnglerAdmin
Автор

Никак не могу найти причину. Nginx нагружает процессор на 100% при 25 посетителях на сайте по тесту loadimpact.
Конфигурация VPS 1 CPU 2.4 GHZ, 1GB RAM 30GB SSD. На чистую Debian 9 c стандартными репозиториями установлена панель Vestacp с минимальным набором: Nginx+php-fpm+Mysql. Все конфиги по дефолту. Движок сайта DLE тоже из коробки.


На что обратить внимание? Так ведь не должно быть? Сайт дико тупит при 10-25 одновременных посетителях. Помогите пожалуйста разобраться, перешел с шаред хостинга. А стало еще хуже чем было.

Сергей-ъды
Автор

Я начинающий, не могу понять одну вещь. Если nginx быстрее чем Apache то почему Apache вообще используется? Есть ли у Apache преимущества перед nginx?

СергейТкач-вж
Автор

Спс за тест.
Есть смысл? Если да - то будет преимущество в десятках или сотнях миллисекундах для TTFB ? )

naillatypov
Автор

надо сравнивать Nginx c PHP-FPM и Apache с PHP-FPM. тест некорректен.

juraism