Нагрузочное тестирование сайта - эксперименты с каталогом демо Falcon Space

В этой статье мы проведем нагрузочное тестирование нашего демо, расположенного по адресу demo.web-automation.ru
Что под капотом сервера, используется 1 машина:

  • RAM 3ГБ
  • Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
  • Windows Server, IIS 10

На машине работает около 15-20 других сайтов с небольшой нагрузкой. 

Чем будем тестировать?

Используем инструмент Apache Jmeter для проверки сайта на способность выдерживать большую нагрузку.
Тесты проведем следующие:

  • 10 пользователей одновременно с последовательным добавлением;
  • 50 пользователей одновременно с последовательным добавлением;
  • 100 пользователей одновременно с последовательным добавлением;
  • 500 пользователей одновременно с последовательным добавлением;
  • 1000 пользователей одновременно с последовательным добавлением;

Будем анализировать, как будет вести себя сайт на протяжении 10 минут при такой нагрузке.
Тестируемой страницей будет demo.web-automation.ru/catalog - каталог товаров.

Тестирование

Тест 1. 10 пользователей, 10 минут прогрева

Общее количество запросов 9271, по 15.4 запроса в секунду. Среднее время ответа составило 635мс, минимальное 133мс, а максимальное 7374мс.
Судя по среднему времени ответа, такая нагрузка не составила для нашего сервера никаких проблем. Увеличиваем “наплыв”.

Тест 2. 50 пользователей, 10 минут прогрева

При нагрузке в 50 пользователей средний отклик сервера составляет 3141мс, что неплохо. Отказов нет, прерываний нет.
В течение 7 минут, после набора необходимого количества, среднее время почти не изменилось, сервер такую нагрузку выдерживает без особых проблем.

Тест 3. 100 пользователей, 10 минут прогрева

Здесь снимем два скрина, первый при достижении 100 пользователей и при работе с такой нагрузкой на протяжении 5 минут.

Количество запросов 4411 с частотой 14.7 в секунду. На протяжении 5 минут, нагрузка планомерно увеличивалась до 100 пользователей.
Среднее время отклика 3168мс, нагрузка на сервер уже чувствуется, однако, отказов нет. Далее смотрим, как будет реагировать сервер следующие 5 минут
с нагрузкой в 100 пользователей.

После 5 минут прогрева среднее время отклика поднялось до 4150мс. Отказов нет, время отклика увеличилось не сильно, что показывает, что наш сайт
справляется с такой нагрузкой. Увеличиваем до 500 пользователей.

Тест 4. 500 пользователей, 10 минут прогрева.

При достижении 500 пользователей одновременно среднее время отклика составляет 14227мс, отказов нет, но сайт работает медленно. Продолжаем тест.

В течение 5 минут время ответа значительно увеличилось, 19228мс является неприемлемым ожиданием. Отказов сервера нет, но система работает очень медленно,
здесь уже нужно применять меры оптимизации (увеличивать железо в первую очередь). Проведем последний тест в 1000 пользователей.

Тест 5. 1000 пользователей, 10 минут прогрева.

За 5 минут должно собраться 1000 пользователей, снимем на это время показатели.

Как видно по скрину, нагрузка в 1000 одновременных пользователей создает серьезное задание для нашей системы. Среднее время ответа составляет 13954мс,
понаблюдаем 5 минут как будет вести сервер при такой нагрузке.

За следующие 5 минут время отклика значительно увеличилось, более того, появились отказы, сервер не справляется с такой нагрузкой -
необходимо добавлять мощности серверу либо распределять нагрузку между различными серверами.

Заключение

Исходя из проведенных тестов, мы выяснили, что пороговое (при котором среднее время ответа приемлемо для нас) значение пользователей, которые
одновременно запрашивают страницу каталога равно между 100 и 500. Учитывая, что тестируемый сервер имеет довольно скромные параметры
(3Гб RAM, CPU E5-2690 v2 @ 3.00GHz, к тому же на нем запущены еще ряд сайтов), результаты достаточно хорошие.
Для масштабирования необходимо реализовать распределение нагрузки на несколько серверов, либо увеличить мощность “железа” на сервере. 

P.S.

Также мы планируем провести аналогичные тесты на обычном Windows хостинге (например, на reg.ru Win0) и на более мощном сервере и зафиксировать результаты в виде аналогичной статьи.

Если вам интересует решение по товарной площадке, смотрите статью Как создать товарную площадку.

The author of the article is Ruslan Ryanov

The creator of the Falcon Space platform
Демо-стенд компонентов
На стенде можно посмотреть различные компоненты в действии: таблицы, формы, модальные окна, диаграммы, карта и т.д.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Обсудить проект
Задайте начальные вопросы по проекту, которые вас сейчас волнуют. Мы бесплатно проконсультируем вас и порекумендуем лучшее решение.

If you like our articles, then please subscribe to our channel in Telegram - Falcon Space.
In it we will publish updates on articles and other materials regarding our platform.