OpenLiteSpeed быстрый. Но не всегда

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр! Меня зовут Алексей, сегодня расскажу, как делал нагрузочное тестирование nginx, Apache и OpenLiteSpeed (он же OLS) и какой из серверов быстрее. 

Поводом для теста стало добавление OLS в наш продукт — ISPmanager. Это панель для управления веб-серверами и сайтами. Поддержка Apache и nginx у нас была давно, а вот OLS — в новинку. Добавить его в ISPmanager очень просили наши пользователи. Разработчики говорят, что OLS супербыстрый сервер, да и независимые замеры подтверждают. Но мы решили проверить всё сами. Оказалось, сервер действительно производительный, но всё же не всегда обгоняет конкурентов. Подробности под катом. 

Методика тестирования. Готовим танк

Цель тестирования — замерить и сравнить эти показатели:

  • скорость — время ответа;

  • производительность — максимальное количество запросов, которые веб-сервер может обработать за единицу времени на одних и тех же ресурсах.

Всего будем проверять четыре конфигурации:

  • Apache MPM Prefork + mod_php

  • Nginx + Apache MPM Prefork + mod_php

  • Nginx + PHP FPM

  • OpenLiteSpeed + LSAPI

Все веб-серверы возьмём с дефолтными настройками, без допинга. 

Для тестирования используем VDS со следующими характеристиками:

CPU — 3,4 GHz (4 cores)
RAM — 4 GB
HDD — 16 GB

Тестировать будем сайт со свежеустановленной WordPress — пожалуй, самый популярный вариант CMS. Для этого используем утилиту Яндекс.Танк. Запросы будут осуществляться к статическому и динамическому контенту. В течение трёх минут будем постепенно увеличивать количество запросов в секунду от 0 до 600. 

Получилась следующая конфигурация танка:
overload:
 enabled: true
 package: yandextank.plugins.DataUploader
 token_file: "token.txt"
phantom:
 instances: 100000
 address: 172.31.97.2:80
 load_profile:
   load_type: rps
   schedule: line(0, 600, 3m)
 headers:
   - "[Host: example.com]"
 uris:
   - "/"
   - "/?p=1"
   - "/wp-login.php"
   - "/wp-content/themes/twentyseventeen/assets/images/header.jpg"
   - "/wp-content/themes/twentyseventeen/style.css"
   - "/wp-content/themes/twentyseventeen/assets/js/global.js?ver=20190121"
console:
 enabled: true
telegraf:
 enabled: false

Результаты тестирования

Apache MPM Prefork + mod_php

Количество обработанных запросов в секунду
Количество обработанных запросов в секунду
Среднее время ответа, мс
Среднее время ответа, мс

Видно, что Apache способен обработать приблизительно 186 запросов в секунду на предоставленных ресурсах сервера. Затем он упирается в процессор и начинает возвращать ошибку 500. Среднее время ответа до этого момента составляет 23 мс.

Nginx + Apache MPM Prefork + mod_php

Количество обработанных запросов в секунду
Количество обработанных запросов в секунду
Среднее время ответа, мс
Среднее время ответа, мс

Если использовать для обработки статики Nginx, количество обрабатываемых запросов увеличивается до 242 в секунду. Среднее время ответа — 19 мс

Nginx + PHP FPM

Количество обработанных запросов в секунду
Количество обработанных запросов в секунду
Среднее время ответа, мс
Среднее время ответа, мс

PHP FPM даёт отличную производительность. Такая конфигурация способна обработать примерно 422 запроса в секунду, а время ответа будет всего лишь 10 мс. Посмотрим, обгонит ли её OpenLiteSpeed.

OpenLiteSpeed + LSAPI

Количество обработанных запросов в секунду
Количество обработанных запросов в секунду
Среднее время ответа, мс
Среднее время ответа, мс

OpenLiteSpeed способен обработать примерно 273 запроса в секунду со средним временем ответа 17 мс. 

Сравниваем результаты

В этом тесте OpenLiteSpeed быстрее, чем Apache и комбинация Nginx + Apache, но всё ещё значительно медленнее Nginx + PHP FPM.

Результаты немного разочаровывают: мы ожидали, что OLS обгонит всех конкурентов. Но при тестировании брали дефолтные конфигурации. В OpenLiteSpeed же есть множество инструментов, которые помогут потягаться с Nginx. Например, плагин кеширования LSCache, сжатие brotli, протокол HTTP/3 и т. п. Возможно, в будущем мы проведем подобное соревнование уже оптимизированных веб-серверов — тогда обязательно расскажем вам о результатах. 

А вы пробовали OpenLiteSpeed? Что думаете о нём?

Источник: https://habr.com/ru/company/ispmanager/blog/676318/


Интересные статьи

Интересные статьи

Привет, Хабр! Редакторы советуют начинать статью именно с такого приветствия, ну так я спорить не буду:) Меня зовут Баранов Михаил, работаю программистом более 20 лет. В ...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...