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


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

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

Предпосылки

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

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

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

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

Настройка параметров загрузки для тестов на основе 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. Нажмите кнопку "Применить" , чтобы изменить тест и использовать новую конфигурацию при повторном запуске.

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

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

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

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

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

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

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

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

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

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

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

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

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

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-сертификат. Чтобы диагностировать проблемы с подключением, можно проверить диаграмму ошибок на панели мониторинга нагрузочного тестирования и скачать файлы журнала нагрузочного теста.

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

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

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

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

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

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

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

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

Настройте общее количество пользователей, необходимых для нагрузочного теста. Это представляет пиковое число одновременных пользователей Locust. Это можно настроить в конфигурации загрузки при создании теста в Azure Load Testing. Это можно также настроить в тестовом скрипте или файле конфигурации Locust. Рекомендуется запускать до 500 пользователей из экземпляра тестового модуля.

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

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

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

Например, чтобы имитировать 2000 пользователей, задайте общее количество пользователей в конфигурации загрузки 2000. Нагрузочное тестирование Azure автоматически заполняет число обработчиков как 4. При необходимости обновите число обработчиков. Если вы настроили пользователей в тестовом скрипте или файле конфигурации Locust как 2000, установите для экземпляров ядра значение 4 в конфигурации загрузки.

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