Результаты нагрузочного тестирования#

Отчёт объединяет результаты одного многоэтапного нагрузочного сценария и показывает, как Blitz Identity Provider ведёт себя при последовательной смене уровней нагрузки. Основная цель — зафиксировать устойчивость системы на длительной серии этапов, а также отдельно показать сравнительные показатели для каждого уровня нагрузки.

  • Режим запуска: многоэтапный

  • Версия Blitz: 5.31.7-release

  • GitLab pipeline ID: 29316

  • Количество прогонов в серии: 4

  • Уровни нагрузки в серии: 1200, 600, 1500, 750 пользователей

  • Общая длительность основной нагрузки: 8 ч

  • Полная длительность сценария с разогревом: 8 ч 5 мин

  • Интерпретация нагрузки: 1 поток ~= 1 параллельный пользователь

  • Последовательность этапов: этап 1 — 1200 пользователей, 1 ч, этап 2 — 600 пользователей, 3 ч, этап 3 — 1500 пользователей, 1 ч, этап 4 — 750 пользователей, 3 ч.

Методика тестирования#

Тестовый стенд#

Компоненты

Компоненты

Назначение

Инстансы

Ресурсный профиль

Размещение

Nginx

Балансировщик нагрузки

1

2 CPU / 2 GiB RAM на инстанс

ВМ инфраструктуры

Blitz IDP

Балансировщик нагрузки

2

8 CPU / 8 GiB RAM на инстанс

ВМ инфраструктуры

PostgreSQL

Балансировщик нагрузки

1

6 CPU / 12 GiB RAM на инстанс

ВМ Blitz

Memcached

Балансировщик нагрузки

2

1 CPU / 1 GiB RAM на инстанс

ВМ инфраструктуры

389 Directory Server

Балансировщик нагрузки

1

6 CPU / 6 GiB RAM на инстанс

ВМ инфраструктуры

JMeter

Балансировщик нагрузки

3

2 CPU / 2.44141 GiB RAM на инстанс

ВМ генератора нагрузки

ВМ

ВМ

Роль

Ресурсы

Хост

ВМ Blitz #1

Blitz IDP

8 CPU / 15.68 GiB RAM

infra-dk3s02.reaxoft.loc

ВМ Blitz #2

Blitz IDP

8 CPU / 15.68 GiB RAM

infra-dk3s03.reaxoft.loc

ВМ инфраструктуры

PostgreSQL / Memcached / 389 Directory Server / Nginx

16 CPU / 31.09 GiB RAM

infra-dk3s05.reaxoft.loc

ВМ генератора нагрузки

JMeter

8 CPU / 15.68 GiB RAM

infra-dk3s04.reaxoft.loc

Процесс аутентификации#

Тестовый процесс аутентификации состоял из следующих типов запросов:

  • LOGIN AE — инициализация аутентификации

  • LOGIN PAGE — получение страницы логина

  • LOGIN POST Login — проверка логина и пароля через LDAP

  • LOGIN TE — получение маркера доступа

  • LOGIN ME — получение данных пользователя

  • LOGOUT — завершение пользовательской сессии после успешного входа, если операция включена настройками прогона

Сценарий тестирования#

Серия моделирует один длительный рабочий цикл стенда, в котором уровни нагрузки последовательно меняются по заранее заданному сценарию:

  • Разогрев: 5 минут один раз перед первым этапом серии. Эта фаза не учитывается в итоговых метриках и итоговой оценке качества;

  • Перед каждым этапом выполняется плавный выход на целевое количество потоков в течение 60 секунд. Эта фаза не учитывается в итоговых метриках, графиках и итоговой оценке качества;

  • Фактическая интенсивность запросов не ограничивается искусственно: её определяет сама система под нагрузкой.

Этап

Потоки

Длительность

Инстансы генератора

Потоков на инстанс

Разогрев перед этапом

Этап 1

1200

1 ч.

3

400

да

Этап 2

600

3 ч.

3

200

нет

Этап 3

1500

1 ч.

3

500

нет

Этап 4

750

3 ч.

3

250

нет

Схема стенда#

_images/image1.png

Базовая конфигурация#

Компонент

Параметр

Значение

Blitz IDP

Internal stores

profile=jdbc , default-type=jdbc

Blitz IDP

Java options

-server, -Xms4g, -Xmx4g, -XX:MaxMetaspaceSize=1g

Blitz IDP

LDAP pool

initialConnections=60, maxConnections=60, connectionTimeout=3000, responseTimeout=3000

Blitz IDP

JDBC pool

maxIdleConn=220, maxTotalConn=220, maxWaitConnMs=5000, minIdleConn=150, maxConnLifetimeMillis=1800000

JMeter

Logout after login

enabled=false, percent=10, timeout-ms=0

389 Directory Server

Тюнинг LDAP

threadnumber=-1, numlisteners=4, maxthreadsperconn=16

Nginx

Upstream blitz-idp

keepalive=256, keepalive_requests=10000, keepalive_timeout=120s

Инструменты мониторинга#

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

  • JMeter: количество запросов, время отклика, доля ошибок и фактическое число запросов в секунду.

  • RPS — фактическое число запросов в секунду; в таблицах это показатель пропускной способности стенда.

  • Метрики сервисов Blitz: состояние модулей аутентификации и внутренних пулов соединений.

  • JVM-метрики: заполнение heap и паузы сборщика мусора.

  • Инфраструктурные метрики: загрузка CPU и памяти на ВМ Blitz, инфраструктуры и генератора нагрузки.

  • PostgreSQL и LDAP: служебные показатели, позволяющие понять, не становится ли хранилище узким местом при росте нагрузки.

Основные результаты тестирования#

Результаты по этапам сценария#

Сначала приведены сводные показатели по каждому этапу сценария, а затем — детальные метрики по отдельным операциям аутентификации.

Этап

Потоки

Длительность

Среднее число HTTP-запросов/сек

Среднее число завершенных входов/сек

Средний отклик, мс

Средняя длительность полного входа, мс

Доля ошибок

Рестарты IDP

Итоговая оценка качества

Этап 1

1200

1 ч

1812.93

363.14

547.31

2732.24

0.106%

0

успешно

Этап 2

600

3 ч

1929.74

386.32

299.80

1497.37

0.056%

0

успешно

Этап 3

1500

1 ч

1570.68

314.60

571.77

2853.79

0.117%

0

успешно

Этап 4

750

3 ч

1894.25

379.25

375.76

1876.52

0.064%

0

успешно

Детальные показатели по операциям

Таблица ниже показывает среднее время отклика и 95/99-й процентиль по ключевым шагам аутентификации для каждого этапа сценария.

Показатель

Метрика

Этап 1 · 1200 пользователей

Этап 2 · 600 пользователей

Этап 3 · 1500 пользователей

Этап 4 · 750 пользователей

Инициализация аутентификации

Среднее время отклика, мс

261.64

75.49

485.41

98.55

Инициализация аутентификации

95-й процентиль, мс

846.00

300.00

1676.00

392.00

Инициализация аутентификации

99-й процентиль, мс

1408.00

491.00

2797.00

630.00

Получение страницы логина

Среднее время отклика, мс

1099.99

604.90

979.51

792.96

Получение страницы логина

95-й процентиль, мс

1893.00

1016.00

2115.00

1300.00

Получение страницы логина

99-й процентиль, мс

2202.00

1208.00

2861.00

1566.00

Проверка логина и пароля

Среднее время отклика, мс

786.88

493.21

801.03

605.87

Проверка логина и пароля

95-й процентиль, мс

1380.00

816.00

1725.00

994.00

Проверка логина и пароля

99-й процентиль, мс

1656.00

974.00

2284.00

1212.00

Получение маркера доступа

Среднее время отклика, мс

278.77

157.90

284.62

183.42

Получение маркера доступа

95-й процентиль, мс

579.00

331.00

661.00

383.00

Получение маркера доступа

99-й процентиль, мс

803.00

467.00

935.00

552.00

Получение данных пользователя

Среднее время отклика, мс

304.97

165.86

303.23

195.72

Получение данных пользователя

95-й процентиль, мс

636.00

345.00

706.00

404.00

Получение данных пользователя

99-й процентиль, мс

868.00

480.00

996.00

578.00

Усредненное время выполнения операции

Среднее время отклика, мс

546.45

299.47

570.76

375.30

Усредненное время выполнения операции

95-й процентиль, мс

1066.80

561.60

1376.60

694.60

Усредненное время выполнения операции

99-й процентиль, мс

1387.40

724.00

1974.60

907.60

Средняя длительность полного входа

мс

2732.24

1497.37

2853.79

1876.52

  • Усредненное время выполнения операции — среднее арифметическое по пяти основным шагам базового сценария аутентификации: инициализация аутентификации, получение страницы логина, проверка логина и пароля, получение маркера доступа и получение данных пользователя.

  • Средняя длительность полного входа — сумма средних времен пяти основных шагов: LOGIN AE, LOGIN PAGE, LOGIN POST Login, LOGIN TE, LOGIN ME.

Сравнение уровней нагрузки

Параллельные пользователи

Среднее число HTTP-запросов/сек

Средний отклик, мс

Средняя длительность полного входа, мс

Доля ошибок

Относительное число запросов

Относительное время отклика

Относительная длительность полного входа

600 (базовая нагрузка)

2070.23

279.85

1397.66

0.057%

1.00x

1.00x

1.00x

750

1964.72

363.65

1816.00

0.060%

0.95x

1.30x

1.30x

1200

1924.06

472.51

2358.87

0.081%

0.93x

1.69x

1.69x

1500

1657.72

433.76

2165.48

0.092%

0.80x

1.55x

1.55x

Время выполнения основных операций

Условные обозначения операций:

  • LOGIN AE — инициализация аутентификации;

  • LOGIN PAGE — получение страницы логина;

  • LOGIN POST Login — проверка логина и пароля;

  • LOGIN TE — получение маркера доступа;

  • LOGIN ME — получение данных пользователя.

Этап 1 · 1200 пользователей

Операция

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

LOGIN AE

1386825

2

0.000%

312.00

1026.00

1689.00

LOGIN ME

1382061

746

0.054%

262.73

576.00

819.00

LOGIN PAGE

1387041

0

0.000%

893.15

1625.00

1931.00

LOGIN POST Login

1386882

3176

0.229%

647.71

1183.00

1449.00

LOGIN TE

1383794

1692

0.122%

243.29

531.00

768.00

Этап 2 · 600 пользователей

Операция

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

LOGIN AE

4476095

6

0.000%

68.91

287.00

471.00

LOGIN ME

4463785

339

0.008%

145.20

314.00

449.00

LOGIN PAGE

4476166

0

0.000%

575.80

931.00

1090.00

LOGIN POST Login

4476115

9861

0.220%

467.89

745.00

886.00

LOGIN TE

4466326

2487

0.056%

139.87

311.00

452.00

Этап 3 · 1500 пользователей

Операция

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

LOGIN AE

1194725

0

0.000%

518.78

1892.00

3149.00

LOGIN ME

1190424

883

0.074%

214.08

508.00

739.00

LOGIN PAGE

1195235

0

0.000%

657.39

1590.00

1995.00

LOGIN POST Login

1195154

2799

0.234%

564.17

1296.00

1734.00

LOGIN TE

1192271

1793

0.150%

211.07

488.00

718.00

Этап 4 · 750 пользователей

Результаты по временным интервалам

Каждый прогон может быть разбит на один или несколько временных интервалов анализа. Они нужны только для отчёта: помогают увидеть, в какой части основного интервала измерений начинается деградация по времени отклика или ошибкам. Это не отдельные сценарии теста и не разные уровни нагрузки внутри одного прогона.

Этап 1 · 1200 пользователей

Интервал анализа

Окно анализа

Длительность

Интервал 1

00:00-00:30

30 мин

Интервал 2

00:30-01:00

30 мин

Интервал анализа

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

Интервал 1

3456961

2678

0.077%

466.66

1276.00

1684.00

Интервал 2

3469642

2938

0.085%

477.39

1296.00

1689.00

Этап 2 · 600 пользователей

Интервал анализа

Окно анализа

Длительность

Интервал 1

00:00-01:30

1 ч 30 мин

Интервал 2

01:30-03:00

1 ч 30 мин

Интервал анализа

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

Интервал 1

11056777

6125

0.055%

281.26

739.00

917.00

Интервал 2

11301710

6568

0.058%

278.11

764.00

968.00

Этап 3 · 1500 пользователей

Интервал анализа

Окно анализа

Длительность

Интервал 1

00:00-00:30

30 мин

Интервал 2

00:30-01:00

30 мин

Интервал анализа

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

Интервал 1

2949520

1600

0.054%

365.09

1073.00

1877.00

Интервал 2

3018289

3875

0.128%

500.10

1502.00

2202.00

Этап 4 · 750 пользователей

Интервал анализа

Окно анализа

Длительность

Интервал 1

00:00-01:30

1 ч 30 мин

Интервал 2

01:30-03:00

1 ч 30 мин

Интервал анализа

Кол-во запросов

Ошибки

Доля ошибок

Среднее, мс

95-й процентиль, мс

99-й процентиль, мс

Интервал 1

10514659

5589

0.053%

364.18

1002.00

1395.00

Интервал 2

10704289

7161

0.067%

362.63

991.00

1298.00

Стабильность работы сервера аутентификации#

Показатель

1200

600

1500

750

Полнота прогона

полный

полный

полный

полный

Длительность основного интервала измерений, с

3600

10800

3600

10800

Итоговая оценка качества

успешно

успешно

успешно

успешно

Ошибки нагрузки

5616

12693

5475

12750

Всего рестартов IDP

0

0

0

0

Среднее число HTTP-запросов в секунду

1924.06

2070.23

1657.72

1964.72

Пиковое число HTTP-запросов в секунду

2679.00

2586.00

2628.00

2550.00

Пиковая загрузка CPU нод Blitz IDP, %

95.05

95.34

94.86

94.93

Пиковое использование RAM нод Blitz IDP, GiB

7.52

7.51

7.57

7.57

Пиковая загрузка CPU ноды инфраструктуры, %

30.80

61.68

49.38

49.11

Пиковое использование RAM ноды инфраструктуры, GiB

3.55

3.74

3.78

3.75

Пиковая загрузка CPU ноды генератора, %

77.24

76.29

77.98

75.33

Пиковое использование RAM ноды генератора, GiB

5.17

5.07

5.23

5.10

Пиковое заполнение JVM heap IDP, %

88.25

88.94

80.41

82.73

Пиковый GC pause IDP, мс

620.00

671.00

457.00

605.00

Пиковое число соединений PostgreSQL

591.00

595.00

594.00

595.00

Графики#

Графики сравнения

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

_images/image2.png _images/image3.png _images/image4.png _images/image5.png _images/image6.png _images/image7.png

Графики по временным интервалам

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

_images/image8.png _images/image9.png _images/image10.png

Заключение#

Система выдержала полный многоэтапный сценарий нагрузки общей длительностью 8 ч.

Максимальный уровень нагрузки в серии составил 1500 потоков. На этом этапе система обеспечила в среднем 1657.72 HTTP-запросов в секунду, что соответствует примерно 331.87 аутентификациям в секунду.

На максимальном уровне нагрузки средний отклик составил 433.76 мс, средняя длительность полного входа — 2165.48 мс, доля ошибок — 0.092%.

Рестартов Blitz IDP за всю серию не зафиксировано.