Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Организация сине-зеленого и канареечного развертывания версий веб-сервиса
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Интеграция GitLab с Tracker
    • Высокопроизводительные вычисления (HPC) на прерываемых ВМ
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • HTTP-тест с нагрузкой по сценарию с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
    • Миграция результатов нагрузочного тестирования из OverLoad
    • Запуск внешних агентов для нагрузочного тестирования
    • Нагрузочный тест с помощью JMeter
    • Получение статистики запросов к объектам Object Storage с использованием Query
    • Получение количества запросов к объектам Object Storage
    • Вызов нагрузочного тестирования из GitLab CI
    • Развертывание GitLab Runner на виртуальной машине Compute Cloud
    • Сравнение результатов нагрузочных тестов

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Создайте сервисный аккаунт
  • Настройте сеть
  • Настройте группу безопасности
  • Создайте агенты тестирования
  • Запустите тест
  • Посмотрите результаты тестирования
  • Как удалить созданные ресурсы
  1. Разработка и тестирование
  2. Нагрузочное тестирование с нескольких агентов

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

Статья создана
Yandex Cloud
Обновлена 22 октября 2024 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
    • Создайте сервисный аккаунт
    • Настройте сеть
    • Настройте группу безопасности
  • Создайте агенты тестирования
  • Запустите тест
  • Посмотрите результаты тестирования
  • Как удалить созданные ресурсы

Load Testing можно использовать для тестирования сервиса с помощью нескольких агентов тестирования.

Нагрузочное тестирование с нескольких агентов применяется если:

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

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

Чтобы провести нагрузочное тестирование с нескольких агентов:

  1. Подготовьте облако к работе.
  2. Подготовьте инфраструктуру.
  3. Создайте агенты тестирования.
  4. Запустите тест.
  5. Посмотрите результаты тестирования.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

Если агент размещается на платформе Yandex Cloud, взимается плата за вычислительные ресурсы (см. тарифы Yandex Compute Cloud).

На стадии Preview использование сервиса Load Testing не тарифицируется.

Подготовьте инфраструктуруПодготовьте инфраструктуру

Создайте сервисный аккаунтСоздайте сервисный аккаунт

  1. Создайте сервисный аккаунт sa-loadtest в каталоге, где будут размещаться агенты.
  2. Назначьте сервисному аккаунту роль loadtesting.generatorClient.

Настройте сетьНастройте сеть

Настройте NAT-шлюз в подсети, в которой будут размещаться агенты. Это обеспечит доступ агентов к сервису Load Testing.

Настройте группу безопасностиНастройте группу безопасности

  1. Создайте группу безопасности для агентов agent-sg.
  2. Добавьте правила:
    • Правило для исходящего HTTPS-трафика к публичному API Load Testing:

      • Диапазон портов: 443.
      • Протокол: TCP.
      • Назначение: CIDR.
      • CIDR блоки: 0.0.0.0/0.

      Это позволит подключить агенты к сервису Load Testing, чтобы управлять тестами из интерфейса и получать результаты тестирования.

    • Правило для исходящего HTTP-трафика при подаче нагрузки к цели тестирования:

      • Диапазон портов: 80.
      • Протокол: TCP.
      • Назначение: CIDR.
      • CIDR блоки: 0.0.0.0/0.

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

    • Правило для входящего SSH-трафика:

      • Диапазон портов: 22.
      • Протокол: TCP.
      • Назначение: CIDR.
      • CIDR блоки: 0.0.0.0/0.

      Это позволит подключаться к агентам по протоколу SSH и управлять тестами из консоли или собирать отладочную информацию.

В этом примере нагрузка будет подаваться на внешний сервис example.myservice.ru. Подробности о настройке групп безопасности для тестирования сервисов, которые размещены внутри облака, см. в разделах:

  • Настройка групп безопасности агента тестирования.
  • Настройка групп безопасности цели тестирования.

Создайте агенты тестированияСоздайте агенты тестирования

  1. Если у вас еще нет пары SSH-ключей, создайте их.

  2. Создайте первый агент:

    Консоль управления
    1. В консоли управления выберите каталог, в котором будет создан агент.

    2. В списке сервисов выберите Load Testing.

    3. На вкладке Агенты нажмите Создать агент.

    4. Укажите имя агента, например, agent-008.

    5. Выберите зону доступности, в которой будет размещен агент.

    6. В блоке Агент:

      • Выберите подходящий тип агента.
      • Укажите подсеть, в которой будет размещен агент. В подсети должен быть создан и настроен NAT-шлюз.
      • Если вам доступны группы безопасности, выберите заранее настроенную группу безопасности агента.
    7. В блоке Доступ укажите данные для доступа к агенту:

      • Выберите сервисный аккаунт sa-loadtest.

      • В поле Логин введите имя пользователя.

        Внимание

        Не используйте логин root или другие имена, зарезервированные операционной системой. Для выполнения операций, требующих прав суперпользователя, используйте команду sudo.

      • В поле SSH-ключ вставьте содержимое файла открытого ключа.

    8. Нажмите Создать.

    9. Дождитесь завершения процесса создания ВМ. Статус агента должен смениться на Ready for test.

      Примечание

      Процесс создания агента может остановиться на статусе Initializing connection, если не выполнены условия:

      • У агента есть доступ к loadtesting.api.cloud.yandex.net:443 и публичный IP-адрес.
      • В целевой подсети настроен NAT-шлюз.
      • У сервисного аккаунта, который назначен агенту, есть необходимые роли.
  3. Аналогично создайте второй агент с именем agent-009.

Если вам нужно подключиться к агентам по протоколу SSH, привяжите к ним публичный IP-адрес.

Запустите тестЗапустите тест

Консоль управления
  1. В консоли управления выберите сервис Load Testing.
  2. На панели слева выберите Тесты.
  3. Нажмите Создать тест.
  4. В блоке Конфигурация 1 укажите параметры тестирования для первого агента:
    1. Агенты — выберите агент agent-008.

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

    2. В блоке Настройки теста:

      • Способ настройки — выберите Форма.
      • Генератор нагрузки — выберите генератор нагрузки Pandora.
      • Адрес цели — введите адрес тестируемого сервиса: example.myservice.ru.
      • Порт цели — укажите 80 (порт для протокола HTTP по умолчанию).
      • Тестирующие потоки — 1000.

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

      Важно

      Важно, чтобы агент имел доступ к example.myservice.ru:80.

      • В меню Тип нагрузки:

        • Выберите тип RPS.
        • Добавьте Профиль нагрузки:
          • Профиль 1 — line.
          • От — 1.
          • До — 100.
          • Длительность — 60s.
        • Добавьте еще один Профиль нагрузки:
          • Профиль 2 — const.
          • Ответов в секунду — 100.
          • Длительность — 300s.

        Эти настройки дадут генератору нагрузки указание наращивать нагрузку от 1 до 100 запросов в секунду первые 60 секунд, а потом 5 минут поддерживать нагрузку 100 запросов в секунду. Подробнее о профиле нагрузки.

      • Тип запросов — укажите тип URI.

      • В поле Прикрепленные файлы выберите Форма и в открывшемся меню:

        • В меню Запросы добавьте запросы:
          • / index.
          • /test?param1=1&param2=2 get_test.

        Запросы отмечены тегами index и get_test. Генератор нагрузки будет повторять их по очереди в пределах заданного профиля нагрузки.

      • В меню Заголовки запросов добавьте заголовки:

        • [Host: example.myservice.ru].

        • [Connection: Close].

          Обратите внимание на заголовок Connection: Close — каждое соединение будет закрываться после запроса. Для тестируемого сервиса и генератора нагрузки такой режим тяжелее. Если не нужно закрывать соединения, следует указать значение Keep-Alive.

      • В поле Время принудительной остановки теста укажите время, после которого сработает автостоп, если тест не будет остановлен по другим причинам. Значение параметра должно быть немного больше ожидаемой продолжительности теста.

  5. Нажмите Дублировать конфигурацию. Параметры тестирования будут скопированы в блок Конфигурация 2.
  6. В блоке Конфигурация 2 укажите параметры тестирования для второго агента:
    1. Агенты — выберите агент agent-009.

    2. В блоке Настройки теста измените параметры тестирования.

      Например, в меню Автостоп нажмите Автостоп и введите описание:

      • Тип автостопа — INSTANCES.
      • Предел — 90%.
      • Размер окна — 60s.

      Этот критерий остановит тест, если в течение 60 секунд будет занято 90% тестирующих потоков, что свидетельствует о возникновении проблем тестирования.

  7. В блоке Информация о тесте укажите имя, описание и номер версии теста. Это сделает отчеты читаемыми.
  8. Нажмите Создать.

После этого конфигурации пройдут проверки и агенты начнут нагружать тестируемое приложение. Отчет можно посмотреть на вкладке Тесты.

Посмотрите результаты тестированияПосмотрите результаты тестирования

Консоль управления
  1. В консоли управления выберите сервис Load Testing.
  2. На панели слева перейдите на вкладку Тесты.
  3. Выберите тест, созданный ранее. Тесты с несколькими агентами отображаются с меткой Multi.
  4. Чтобы посмотреть обобщенные результаты, перейдите на вкладку Результаты теста.
  5. Чтобы посмотреть результаты тестирования по каждому агенту:
    1. Перейдите на вкладку Обзор.
    2. В блоке Тесты выберите нужный агент.
    3. Перейдите на вкладку Результаты теста.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы, удалите агенты тестирования.

Была ли статья полезна?

Предыдущая
HTTP-тест с нагрузкой по сценарию с помощью Pandora
Следующая
Миграция результатов нагрузочного тестирования из OverLoad
Проект Яндекса
© 2025 ООО «Яндекс.Облако»