Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Статический сайт в Object Storage
    • Сайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Веб-сайт на базе 1С-Битрикс
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Публикация обновлений для игр
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Распознавание архива изображений в Yandex Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка синхронизации времени NTP
    • Работа с группой ВМ с автоматическим масштабированием
    • Автомасштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Yandex Cloud Logging
    • Резервное копирование ВМ с помощью Hystax Acura Backup
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360
    • Интеграция с корпоративным сервисом DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
    • Все руководства
    • Миграция базы данных из стороннего кластера Apache Kafka® в Yandex Managed Service for Apache Kafka®
    • Поставка данных из Yandex Managed Service for MySQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for ClickHouse с помощью Yandex Data Transfer
    • Перенос данных между кластерами Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for MySQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Настройка Kafka Connect для работы с кластером Yandex Managed Service for Apache Kafka®
    • Управление схемами данных в Yandex Managed Service for Apache Kafka®
    • Использование Managed Schema Registry с Yandex Managed Service for Apache Kafka®
    • Использование Confluent Schema Registry с Yandex Managed Service for Apache Kafka®
    • Миграция базы данных из MySQL в ClickHouse с помощью Yandex Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc
    • Настройка Yandex Managed Service for ClickHouse для Graphite
    • Получение данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for ClickHouse
    • Получение данных из RabbitMQ в Yandex Managed Service for ClickHouse
    • Сохранение потока данных Yandex Data Streams в Yandex Managed Service for ClickHouse
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse
    • Шардирование таблиц Yandex Managed Service for ClickHouse
    • Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Настройка Yandex Cloud DNS для доступа к кластеру Yandex Managed Service for ClickHouse из других облачных сетей
    • Импорт данных из Yandex Managed Service for MySQL в Yandex Data Proc с помощью Sqoop
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Proc с помощью Sqoop
    • Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc
    • Миграция данных из стороннего кластера Elasticsearch в Yandex Managed Service for Elasticsearch с помощью Reindex API
    • Миграция коллекций из стороннего кластера MongoDB в Yandex Managed Service for MongoDB
    • Миграция данных в Yandex Managed Service for MongoDB
    • Шардирование коллекций MongoDB
    • Анализ производительности и оптимизация MongoDB
    • Миграция базы данных из стороннего кластера MySQL в кластер Yandex Managed Service for MySQL
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Синхронизация данных из стороннего кластера MySQL в Yandex Managed Service for MySQL с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в сторонний кластер MySQL
    • Миграция базы данных из Yandex Managed Service for MySQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в Yandex Object Storage с помощью Yandex Data Transfer
    • Создание кластера PostgreSQL для 1С
    • Анализ производительности и оптимизация Managed Service for PostgreSQL
    • Миграция базы данных из стороннего кластера PostgreSQL в кластер Yandex Managed Service for PostgreSQL
    • Миграция базы данных из Managed Service for PostgreSQL
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for PostgreSQL в Yandex Object Storage
    • Миграция базы данных из Greenplum® в ClickHouse
    • Миграция базы данных из Greenplum® в PostgreSQL
    • Миграция базы данных из стороннего кластера Redis в Yandex Managed Service for Redis
    • Использование кластера Managed Service for Redis в качестве хранилища сессий PHP
  • Продукты Microsoft в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая инфраструктура
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Настройки DHCP для работы с корпоративным DNS-сервером
    • Маршрутизация с помощью NAT-инстанса
    • Создание туннеля IPSec VPN
    • Установка виртуального роутера Cisco CSR 1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Создание и настройка шлюза UserGate в режиме прокси-сервера
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Настройка сети для Yandex Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью SQL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Разработка навыка Алисы и сайта с авторизацией
  1. Тестовая среда
  2. Нагрузочное тестирование с нескольких агентов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

Группы безопасности находятся на стадии Preview. Если они недоступны в вашей сети, для ресурсов будет разрешен весь входящий и исходящий трафик, дополнительной настройки не требуется.

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

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

      • диапазон портов: 443;
      • протокол: TCP;
      • тип источника: CIDR;
      • назначение: 0.0.0.0/0.

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

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

      • диапазон портов: 80;
      • протокол: TCP;
      • тип источника: CIDR;
      • назначение: 0.0.0.0/0.

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

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

      • диапазон портов: 22;
      • протокол: TCP;
      • тип источника: CIDR;
      • назначение: 0.0.0.0/0.

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

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

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

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

  1. Сгенерируйте пару ключей SSH для подключения к агентам по протоколу SSH.

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

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

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

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

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

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

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

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

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

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

        Внимание

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

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

    8. Нажмите кнопку Создать.

    9. Дождитесь завершения процесса создания виртуальной машины. Статус агента должен смениться на READY_FOR_TEST.

      Примечание

      Процесс создания агента может остановиться на статусе INITIALIZING_CONNECTION, если у агента не будет доступа к loadtesting.api.cloud.yandex.net:443, или у сервисного аккаунта, который назначен агенту, не будет необходимых ролей.

  3. Аналогично создайте второй агент с именем agent-009.

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

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

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

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

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

      • Способ настройки — выберите Форма.

      • Генератор нагрузки — выберите генератор Pandora.

      • Адрес цели — введите адрес тестируемого сервиса: example.myservice.ru.

      • Порт цели — укажите 80 (порт для протокола HTTP по умолчанию).

      • Тестирующие потоки — 1000.

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

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

        • Тип нагрузки — выберите тип RPS.

        • Профиль нагрузки — добавьте два этапа теста:

          • {type: line, duration: 60s, from: 1, to: 100}
          • {type: const, duration: 300s, ops: 100}

          Это указание генератору наращивать нагрузку от 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.

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

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

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

      • Тип автостопа: INSTANCES.
      • Критерии автостопа: 90%,60s.

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

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

Конфигурации пройдут проверки, и агенты начнут нагружать тестируемый сервис.

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

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

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

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

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Создайте сервисный аккаунт
  • Настройте сеть
  • Настройте группу безопасности
  • Создайте агенты тестирования
  • Запустите тест
  • Посмотрите результаты тестирования
  • Как удалить созданные ресурсы