Нагрузочное тестирование сайта и архитектуры

Оценим устойчивость вашей инфраструктуры к нагрузкам при значительном увеличении трафика. В результате вы получите подробный отчет и советы по устранению выявленных недостатков. Обеспечьте масштабируемость ваших веб-сервисов и минимизируйте риски сбоев, избегая при этом простоя и финансовых потерь
УСЛУГА
Нагрузочное тестирование
Оценим устойчивость вашей инфраструктуры к нагрузкам при значительном увеличении трафика. В результате вы получите подробный отчет и советы по устранению выявленных недостатков. Обеспечьте масштабируемость ваших веб-сервисов и минимизируйте риски сбоев, избегая при этом простоя и финансовых потерь

Зачем проводить нагрузочное тестирование?

В ходе нагрузочного тестирования производится сбор показателей и определение производительности и масштабируемости системы (сайта) посредством создания разного профиля нагрузки, которую она должна выдерживать. Для этого используется имитация работы пользователей, одновременно выполняющих в системе определенные операции.

Нагрузочное тестирование позволяет определить:
  • Слабые места в коде и/или архитектуре
  • Границы нагрузки, при которых система еще способна работать без ошибок
  • Потенциальные проблемы со стабильностью системы при длительной работе под интенсивной нагрузкой
  • Методы дальнейшего масштабирования и оптимизации

Когда необходимо нагрузочное тестирование

Снизить риск сбоя перед интеграцией у блогера миллионника или распродажей
01
Понять, почему рост органического трафика на сайт вызывает его замедление
02
Удостовериться, что продукт, созданный внешним исполнителем, выдержит планируемую нагрузку
03
Выяснить, почему инфраструктура не справилась с увеличением объемов трафика
04
Подготовка к акциям или сезону
Рост трафика
Сдача-приёмка проекта
Чрезвычайная ситуация

Типы нагрузочного тестирования

01

I. НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ (Load Testing)

Задачи тестирования: сбор показателей и определение производительности и масштабируемости системы или приложения посредством создания разного профиля нагрузки, которую она должна выдерживать. Для этого используется имитация работы пользователей, одновременно выполняющих в системе определенные операции.

Цели тестирования: получение данных по работе сервера, при создании определенных нагрузок.

Результаты тестирования:
  • Измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций
  • Определение максимального числа пользователей, одновременно работающих в системе, с учетом критериев производительности
  • Потенциальные проблемы со стабильностью системы при длительной работе под интенсивной нагрузкой
  • Методы дальнейшего масштабирования и оптимизации
02

II. СТРЕССОВОЕ ТЕСТИРОВАНИЕ (Stress Testing)

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

Цели тестирования: обнаружение возможных утечек памяти, повреждения данных, а также выявление некорректных обработок ошибок и исключительных ситуаций.

Результаты тестирования:
Получение пороговых значений, при которых происходит “падение сервера”. Т.е. определение максимальной нагрузки на сервер.

03

III. ТЕСТИРОВАНИЕ СТАБИЛЬНОСТИ (Stability Testing)

Задачи тестирования: проверка работоспособности системы при длительном (многочасовом) тестировании со средним уровнем нагрузки. Время выполнения операций может играть в данном виде тестирования второстепенную роль. При этом на первое место выходит отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты, влияющие именно на стабильность работы.

Цели тестирования: получение данных по работе системы, при создании определенных нагрузок.

Результаты тестирования:
Определение той величины нагрузки, при которой возможна оптимальная работа сервера продолжительный период времени.

Этапы нагрузочного тестирования

Результат после проведения нагрузочного тестирования

Стоимость и сроки

Цена и сроки рассчитывается индивидуально. Итоговая стоимость зависит от количества серверов, используемого программного обеспечения и сложности инфраструктуры проекта.

Базовый перечень работ:
  • Подготовка данных и метрик для создания тестов
  • Создание и настройка клона сервера (опционально)
  • Настройка мониторинга сервера
  • Настройка агентов тестирования Yandex Load Testing
  • Подготовка тестов (4 цепочки)
  • Запуск нагрузки, фиксирование результатов
  • Анализ полученных данных и составление отчета
  • Тесты базового функционала во время и после проведения нагрузочного тестирования
  • Составление отчета о результатах с рекомендациями по решению выявленных проблем

Срок проведения — от двух недель.

На итоговую стоимость услуги влияют следующие параметры инфраструктуры:
  • Технологический стек
  • Количество итераций тестирования
  • Тип нагрузочного тестирования

Пример из практики

Крупный дистрибьютор косметики
У одного нашего клиента возникали проблемы во время распродаж. Для проведения акции создавалась специальная посадочная страница в рамках текущего сайта, и со всех каналов привлекался большой объем трафика.

Выяснилось, что предыдущий подрядчик этого не предусмотрел. Архитектура кода и серверного окружения не была рассчитана на большие нагрузки, и система регулярно давала сбой в самые пики наплыва покупателей.

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

Розничная сеть бренда женской одежды
Клиент обратился к нам из-за серьезных проблем в работе сайта: в моменты маркетинговой активности, когда вырастало количество заказов, админка сайта начинала медленно работать.

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

В рамках проверки провели:
  • Нагрузочное тестирование: тесты, анализ результатов и выводы.
  • Анализ сервера: проверку настроек и конфигурации сервера, настроек PHP и MySQL, списка задач в Cron, текущей загрузки ресурсов.
  • Анализ кода и программной архитектуры: аудит задач в Cron, подробное изучение компонентов «Битрикс», использования Git, анализ событий «1С-Битрикс».
  • Frontend-тестирование: кроссбраузерное и кроссплатформенное тестирование верстки на реальных устройствах, а также с использованием сервиса Browserstack, анализ ошибок и проверку валидности верстки.
  • Функциональное тестирование: проверили корректность работы определенных функций.

Обнаружили следующие проблемы:
  • Сервер был перегружен избыточным количеством рабочих процессов, притом что один из двух дисков не был задействован;
  • Некоторые модули «1С-Битрикс» были настроены и использовались некорректно;
  • Структура кода требовала оптимизации, ряд возможностей не использовался, часть задач выполнялась одновременно;
  • Некорректная верстка, не оптимизированные изображения и скрипты, низкая скорость загрузки страниц;
  • Функциональные проблемы на сайте и нарушения требований 152-ФЗ;
  • Основные нагрузки на сервер создавали страницы каталога, оформления заказа и поиска по сайту.

По итогам анализа составили список рекомендаций и начали последовательно исправлять ошибки. В итоге:
  1. Устранили основную проблему с медленной загрузкой админки сайта в периоды маркетинговой активности — сайт стал работать в несколько раз быстрее и без зависаний;
  2. Оптимизировали работу сервера за счет настройки и использования незадействованных ресурсов;
  3. Исправили ошибки и произвели настройку компонентов и модулей в «1С-Битрикс»;
  4. Устранили ошибки верстки, оптимизировали ее и стандартизировали компоненты;
  5. Провели рефакторинг кода и исправили функциональные ошибки на сайте.
Оставьте заявку, чтобы обсудить проект и задачи
Кирилл Мяконькин
NEW BIZ менеджер, проконсультирует
и подготовит предложение
*
*
*