Нагрузочное тестирование сайта с каталогом Falcon Space
В статье экспериментируем с нагрузкой на платформу с помощью внешнего инструмента jMeter
В этой статье мы проведем нагрузочное тестирование нашего демо, расположенного по адресу marketplace.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 минут при такой нагрузке.
Тестируемой страницей будет marketplace.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) и на более мощном сервере и зафиксировать результаты в виде аналогичной статьи.
Если вам интересует решение по товарной площадке, смотрите статью Как создать товарную площадку.
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта