Нагрузочное тестирование сервера ProcesetLTS
Основную нагрузку (порядка 90%) на внешний API составляет взаимодействие сервера с агентами мониторинга.
Поведение одного агента мониторинга
Один агент мониторинга отправляет на сервер следующие запросы:
- Запрос версии агента — 1 раз в час
- Запрос настроек агента — 1 раз в час
- Запрос проверки/создания источника активности — 1 раз в час
- Запрос на скачивание дистрибутива агента, если требуется обновление на рабочей станции — примерно 1 раз за релиз
- Запрос списка активных подсистем — 1 раз в час
- Мутация, присылающая архивы с логами и активностью агента — 12 раз в час
Распределение архивов:
- 95% мутаций — 1 архив, средний размер 3 KB
- 4% мутаций — 2 архива, средний размер 3 KB × 2 = 6 KB
- 1% мутаций — от 3 до 10 архивов, средний размер 3 KB × (3–10) = 9–30 KB
- При тестировании мониторинга скриншотов — примерно 100 KB на 1 скриншот
Среда тестирования
Для тестирования разработана кастомная утилита на языке Java.
Тестирование проводится на одной машине, где одновременно размещены:
- Утилита тестирования
- Сервер Proceset
Это позволяет исключить влияние сетевых задержек. Возможен также вариант тестирования стенда по сети.
Инициализация теста
В утилите задается число пользователей.
На первом шаге инициализации на тестируемом экземпляре создаются:
- Сотрудники
- Источники активности
- Лицензионные роли агентов мониторинга
Количество сотрудников: 100 000.
Нагрузочный сценарий
Утилита выполняет комплексное тестирование по всем перечисленным запросам:
- Запрос версии агента
- Частота: 100 000 / 3600 = ~28 запросов в секунду
- Каждый из 100 000 сотрудников участвует 1 раз в течение часа
- Производится подсчет среднее/минимальное/максимальное/перцентиль 99 время выполнения запросов
- Среднее время выполнения: 7 мс
- Подсчет ошибок
- Запрос настроек
- Частота: 28 запросов в секунду
- Производится подсчет среднее/минимальное/максимальное/перцентиль 99 время выполнения запросов
- Среднее время выполнения: 10 мс
- Подсчет ошибок
- Запрос проверки источника активности
- Частота: 28 запросов в секунду
- Производится подсчет среднее/минимальное/максимальное/перцентиль 99 время выполнения запросов
- Среднее время выполнения: 16 мс
- Подсчет ошибок
- Запрос создания источника активности
- Частота: 1 запрос в секунду
- Показатель взят эмпирически — обычно не более 10% пользователей меняются за сутки
- Производится подсчет среднее/минимальное/максимальное/перцентиль 99 время выполнения запросов
- Среднее время выполнения: 50 мс
- Подсчет ошибок
- Запрос списка активных подсистем
- Частота: 28 запросов в секунду
- Производится подсчет среднее/минимальное/максимальное/перцентиль 99 время выполнения запросов
- Среднее время выполнения: 7 ** мс.
- Подсчет ошибок
Мутация — отправка архивов с логами и активностью:
- Архивы активности генерируются в памяти и структурно аналогичны продуктивным
- Запросы распределяются равномерно: 100 000 / 300 = ~335 запросов в секунду
Суммарный RPS запросов от агентов ~450 запросов в секунду.
Продолжительность тестов и метрики
Продолжительность тестов: от 2 до 24 часов.
По завершении формируется итоговый отчет с метриками:
- Количество ошибок в разбивке запроса
- Среднее/минимальное/максимальное/перцентиль 99 время в разбивке запроса
- Подсчет общего числа записанной активности во встроенную файловую базу данных и ClickHouse на момент завершения теста:
- Очередь
- Обработанная
- Перелитая в OLAP
- Визуальное сравнение с результатами тестирования предыдущего релиза
Была ли статья полезна?