Nginx vs Apache - кто быстрее

Внезапно провёл тестирование Apache и Nginx в Битриксе.

Взял две новых виртуалки:

  1. Centos 8 + Nginx + PHP-FPM + MariaDB
  2. Oracle Linux 8.1 + Apache + PHP-FPM + MariaDB

На обе установил Битрикс (Бизнес) версии 20.0. Настройки по умолчанию кроме тех, которые нужны для запуска битрикса.

Закинул на один и тот же сервер (Xeon-D 2143), дал им по 2 vcpu и по 2 Гб ОЗУ и начал тестировать.

Первый тест - без автокеширования Битрикса, смотрим на производительность системы, так сказать, в целом

ab -n 1000 -c 5 http://ip-address

Результаты ниже:

  1. Centos + Nginx
    Time taken 35 секунд,
    time per request 176 ms,
    time per request (mean) 35.5 ms
    Connection time (mean): 175 ms

  2. Oracle + Apache
    Time taken 36 секунд,
    time per request 182 ms,
    time per request (mean) 36.4 ms
    Connection time (mean): 181 ms

Повторяем то же самое со включенным автокешированием Битрикса.

  1. Centos + Nginx
    Time taken 23 секунд,
    time per request 116 ms,
    time per request (mean) 23.3 ms
    Connection time (mean): 115 ms

  2. Oracle + Apache
    Time taken 23 секунд,
    time per request 118 ms,
    time per request (mean) 23.6 ms
    Connection time (mean): 117 ms

Отключаем автокеширование, смотрим на поиск

  ab -n 1000 -c 5 http://ip-address/search/?q=yandex
  1. Centos + Nginx
    Time taken 49 секунд,
    time per request 247 ms,
    time per request (mean) 49.5 ms
    Connection time (mean): 242 ms

  2. Oracle + Apache
    Time taken 29 секунд,
    time per request 145 ms,
    time per request (mean) 29.5 ms
    Connection time (mean): 144 ms

Выводы

Если не брать совершенно конские нагрузки типа “1000 запросов в секунду”, то Apache не медленнее или даже быстрее чем NGINX

Учитывая мои прошлые тесты, могу с уверенностью сказать что одни и те же продукты от платных дистрибутивов типа SUSE/ReD Hat могут работать в разы быстрее чем они же в бесплатных Fedora / Ubuntu. Не всегда, но случается.