Поделиться через


Настройка нагрузочного тестирования Azure для масштабируемой нагрузки

Из этой статьи вы узнаете, как настроить нагрузочный тест для высокомасштабного тестирования с помощью Azure Load Testing. Нагрузочное тестирование Azure абстрагирует сложность подготовки инфраструктуры для имитации высокомасштабного трафика. Чтобы масштабировать нагрузочный тест, можно настроить количество экземпляров параллельного модуля тестирования. Для достижения оптимального распределения нагрузки можно отслеживать метрики работоспособности экземпляра теста на панели мониторинга нагрузочного тестирования Azure.

Необходимые компоненты

Настройка параметров загрузки для нагрузочного теста

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

В зависимости от типа нагрузочного теста на основе URL-адресов или JMeter у вас есть различные варианты настройки целевой нагрузки и шаблона загрузки. В следующей таблице перечислены различия между двумя типами тестов.

Тип теста Число виртуальных пользователей Шаблон нагрузки
URL-адрес (базовый) Укажите целевое число виртуальных пользователей в конфигурации нагрузочного теста. Шаблон линейной нагрузки, основанный на времени увеличения и количестве виртуальных пользователей.
URL-адрес (дополнительно) Укажите количество тестовых модулей и количество виртуальных пользователей на экземпляр в конфигурации нагрузочного теста. Настройте шаблон нагрузки (линейный, шаг, пик).
На основе JMeter Укажите количество тестовых модулей в конфигурации нагрузочного теста. Укажите количество виртуальных пользователей в тестовом скрипте. Настройте шаблон нагрузки в скрипте тестирования.

Настройка параметров загрузки для тестов на основе URL-адресов

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

  1. В портал Azure перейдите к ресурсу Azure Load Testing.

  2. В области навигации слева выберите "Тесты ", чтобы просмотреть все тесты.

  3. В списке выберите нагрузочный тест и нажмите кнопку "Изменить".

    Снимок экрана: список нагрузочных тестов и кнопка

    Кроме того, можно изменить конфигурацию теста на странице сведений о тесте. Для этого нажмите кнопку "Настроить" и выберите " Тест".

  4. На странице "Основы" установите флажок "Включить дополнительные параметры".

  5. На странице "Изменить тест" выберите вкладку "Загрузка".

    Для тестов на основе URL-адресов можно настроить количество экземпляров параллельного тестового модуля и шаблон нагрузки.

  6. Используйте ползунок ползунка экземпляров ядра для обновления количества экземпляров параллельного тестового модуля. Кроме того, введите целевое значение в поле ввода.

    Снимок экрана: вкладка

  7. Выберите значение шаблона загрузки из списка.

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

    Снимок экрана: вкладка

Настройка параметров нагрузки для тестов на основе JMeter

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

  1. В портал Azure перейдите к ресурсу Azure Load Testing.

  2. В области навигации слева выберите "Тесты ", чтобы просмотреть все тесты.

  3. В списке выберите нагрузочный тест и нажмите кнопку "Изменить".

    Снимок экрана: список нагрузочных тестов и кнопка

    Кроме того, можно изменить конфигурацию теста на странице сведений о тесте. Для этого нажмите кнопку "Настроить" и выберите " Тест".

  4. На странице "Изменить тест" выберите вкладку "Загрузка". Используйте ползунок "Экземпляры обработчика", чтобы обновить количество экземпляров тестового модуля или ввести значение непосредственно в поле ввода.

    Снимок экрана: вкладка

  5. Нажмите кнопку "Применить" , чтобы изменить тест и использовать новую конфигурацию при повторном запуске.

Мониторинг метрик экземпляра ядра

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

Azure Load Testing сообщает четыре метрики ресурсов для каждого экземпляра:

  • Процент ЦП.
  • Процент использования памяти.
  • Сетевые байты в секунду.
  • Количество виртуальных пользователей.

Экземпляр тестового модуля считается работоспособным, если средний процент ЦП или процент памяти в течение тестового запуска остается ниже 75%.

Чтобы просмотреть метрики ресурсов ядра, выполните следующие действия.

  1. Перейдите к ресурсу нагрузочного тестирования. На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.

  2. В списке выберите нагрузочный тест, чтобы просмотреть список тестовых запусков.

  3. В списке тестового запуска выберите тестовый запуск.

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

    При необходимости выберите конкретный экземпляр тестового модуля с помощью элементов управления фильтрами.

Снимок экрана: метрики работоспособности подсистемы нагрузки на панели мониторинга тестового запуска.

Устранение неполадок с неработоспособными экземплярами подсистемы

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

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

  • Убедитесь, что скрипт работает без избыточного кода.

  • Если состояние работоспособности обработчика неизвестно, повторно запустите тест.

Определение запросов в секунду

Максимальное количество запросов в секунду (RPS), которое может создать нагрузочное тестирование Azure для нагрузочного теста, зависит от задержки приложения и количества виртуальных пользователей (VUS). Задержка приложения — это общее время отправки запроса приложения модульом тестирования до получения ответа. Число виртуальных пользователей — это количество параллельных запросов, выполняемых Azure Load Testing в определенное время.

Чтобы вычислить количество запросов в секунду, примените следующую формулу: RPS = (# виртуальных машин) * (1/задержка в секундах).

Например, если задержка приложения составляет 20 миллисекунд (0,02 секунды), и вы создаете нагрузку 2000 виртуальных машин, вы можете достичь около 100 000 ЕЗ (2000 * 1/0,02s).

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

Примечание.

Apache JMeter сообщает только запросы, которые сделали его на сервере и обратно, либо успешно, либо нет. Если Apache JMeter не удается подключиться к приложению, фактическое количество запросов в секунду будет ниже максимального значения. Возможные причины могут быть в том, что сервер слишком занят для обработки запроса или отсутствует TLS/SSL-сертификат. Чтобы диагностировать проблемы с подключением, можно проверить диаграмму ошибок на панели мониторинга нагрузочного тестирования и скачать файлы журнала нагрузочного теста.

Экземпляры и виртуальные пользователи подсистемы тестирования

В скрипте Apache JMeter можно указать количество параллельных потоков. Каждый поток представляет виртуального пользователя, который обращается к конечной точке приложения. Рекомендуется сохранить количество потоков в скрипте не более 250.

В Azure Load Testing экземпляры тестового модуля отвечают за выполнение скрипта Apache JMeter. Все экземпляры тестового модуля выполняются параллельно. Можно настроить количество экземпляров для нагрузочного теста.

Общее количество виртуальных пользователей для нагрузочного теста: VUs = (потоки#) * (экземпляры тестового модуля# ).

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

Например, чтобы имитировать 1000 виртуальных пользователей, задайте количество потоков в скрипте Apache JMeter равным 250. Затем настройте нагрузочный тест с четырьмя экземплярами подсистемы тестирования (т. е. 4 x 250 потоков).

Расположение ресурса нагрузочного тестирования Azure определяет расположение экземпляров тестового модуля. Все экземпляры подсистемы тестирования в ресурсе нагрузочного тестирования размещаются в одном регионе Azure.