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

Введение#

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

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

  • Версия Blitz: 5.34.8

  • GitLab pipeline ID: 34505

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

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

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

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

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

  • Каждый вход использует следующую учетную запись из пула; за учетной записью закреплено стабильное устройство

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

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

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

Компоненты#

Компонент

Назначение

Инстансы

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

Размещение

Nginx

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

1

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

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

Blitz IDP

Сервер аутентификации

2

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

ВМ Blitz

PostgreSQL

Основное хранилище данных

1

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

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

Memcached

Кэш сессий и служебных данных

2

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

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

389 Directory Server

LDAP-каталог пользователей

1

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

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

JMeter

Генератор нагрузки

5

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

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

ВМ#

ВМ

Роль

Ресурсы

ВМ Blitz #1

Blitz IDP

8 CPU / 15.68 GiB RAM

ВМ Blitz #2

Blitz IDP

8 CPU / 15.68 GiB RAM

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

PostgreSQL / Memcached / 389 Directory Server / Nginx

16 CPU / 31.09 GiB RAM

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

JMeter

32 CPU / 15.68 GiB RAM

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

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

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

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

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

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

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

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

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

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

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

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

Этап

Потоки

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

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

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

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

Этап 1

1200

1 ч

5

240

да

Этап 2

600

3 ч

5

120

нет

Этап 3

1500

1 ч

5

300

нет

Этап 4

750

3 ч

5

150

нет

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

Схема стенда

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

Компонент

Параметр

Значение

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=1000, responseTimeout=3000

Blitz IDP

JDBC pool

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

389 Directory Server

LDAP tuning

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

Nginx

Blitz IDP upstream

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

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

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

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

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

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

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

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

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

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

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

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

Этап

Потоки

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

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

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

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

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

Доля ошибок

Рестарты IDP

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

Этап 1

1200

1 ч

3719.48

743.64

321.37

1606.90

0.000%

0

успешно

Этап 2

600

3 ч

3828.14

765.57

155.83

778.95

0.001%

0

успешно

Этап 3

1500

1 ч

3726.85

745.06

399.76

1998.86

0.000%

0

успешно

Этап 4

750

3 ч

3797.76

759.50

196.51

982.57

0.000%

0

успешно

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

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

Показатель

Метрика

Этап 1 · 1200 параллельных входов

Этап 2 · 600 параллельных входов

Этап 3 · 1500 параллельных входов

Этап 4 · 750 параллельных входов

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

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

76.67

37.85

101.39

47.45

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

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

51.00

21.00

71.00

31.00

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

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

226.00

105.00

284.00

127.00

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

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

341.00

212.00

418.00

255.00

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

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

67.32

30.81

83.48

39.67

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

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

46.00

17.00

59.00

25.00

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

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

211.00

103.00

246.00

120.00

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

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

319.00

195.00

364.00

234.00

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

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

986.57

460.37

1232.59

579.71

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

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

967.00

406.00

1213.00

534.00

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

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

1419.00

970.00

1742.00

1064.00

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

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

1652.00

1145.00

2013.00

1272.00

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

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

290.95

163.05

351.86

203.00

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

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

272.00

137.00

332.00

181.00

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

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

527.00

363.00

626.00

408.00

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

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

666.00

470.00

788.00

531.00

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

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

184.89

86.63

228.96

112.27

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

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

164.00

61.00

207.00

91.00

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

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

387.00

235.00

462.00

268.00

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

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

512.00

330.00

605.00

377.00

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

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

321.28

155.74

399.65

196.42

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

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

554.00

355.20

672.00

397.40

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

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

698.00

470.40

837.60

533.80

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

мс

1606.90

778.95

1998.86

982.57

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

  • Средняя длительность полного входа — средняя сумма времени выполнения HTTP-запросов от LOGIN AE до LOGIN ME в рамках одной успешной попытки входа.

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

Параллельные входы

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

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

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

Доля ошибок

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

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

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

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

3828.14

155.83

778.95

0.001%

1.00x

1.00x

1.00x

750

3797.76

196.51

982.57

0.000%

0.99x

1.26x

1.26x

1200

3719.48

321.37

1606.90

0.000%

0.97x

2.06x

2.06x

1500

3726.85

399.76

1998.86

0.000%

0.97x

2.57x

2.57x

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

Условные обозначения операций: LOGIN AE — инициализация аутентификации; LOGIN PAGE — получение страницы логина; LOGIN POST Login — проверка логина и пароля; LOGIN TE — получение маркера доступа; LOGIN ME — получение данных пользователя.

Этап 1 · 1200 параллельных входов#

Операция

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

Ошибки

Доля ошибок

Среднее, мс

Медиана, мс

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

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

LOGIN AE

2678194

0

0.000%

76.67

51.00

226.00

341.00

LOGIN ME

2678101

0

0.000%

184.89

164.00

387.00

512.00

LOGIN PAGE

2678221

0

0.000%

67.32

46.00

211.00

319.00

LOGIN POST Login

2677548

0

0.000%

986.57

967.00

1419.00

1652.00

LOGIN TE

2678078

0

0.000%

290.95

272.00

527.00

666.00

Этап 2 · 600 параллельных входов#

Операция

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

Ошибки

Доля ошибок

Среднее, мс

Медиана, мс

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

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

LOGIN AE

8268994

0

0.000%

37.85

21.00

105.00

212.00

LOGIN ME

8268656

18

0.000%

86.63

61.00

235.00

330.00

LOGIN PAGE

8268969

0

0.000%

30.81

17.00

103.00

195.00

LOGIN POST Login

8268650

245

0.003%

460.37

406.00

970.00

1145.00

LOGIN TE

8268641

48

0.001%

163.05

137.00

363.00

470.00

Этап 3 · 1500 параллельных входов#

Операция

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

Ошибки

Доля ошибок

Среднее, мс

Медиана, мс

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

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

LOGIN AE

2683568

1

0.000%

101.39

71.00

284.00

418.00

LOGIN ME

2683417

0

0.000%

228.96

207.00

462.00

605.00

LOGIN PAGE

2683595

0

0.000%

83.48

59.00

246.00

364.00

LOGIN POST Login

2682673

0

0.000%

1232.59

1213.00

1742.00

2013.00

LOGIN TE

2683392

0

0.000%

351.86

332.00

626.00

788.00

Этап 4 · 750 параллельных входов#

Операция

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

Ошибки

Доля ошибок

Среднее, мс

Медиана, мс

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

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

LOGIN AE

8203297

1

0.000%

47.45

31.00

127.00

255.00

LOGIN ME

8203250

0

0.000%

112.27

91.00

268.00

377.00

LOGIN PAGE

8203268

0

0.000%

39.67

25.00

120.00

234.00

LOGIN POST Login

8202883

0

0.000%

579.71

534.00

1064.00

1272.00

LOGIN TE

8203153

0

0.000%

203.00

181.00

408.00

531.00

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

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

Этап 1 · 1200 параллельных входов#

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

Окно анализа

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

Интервал 1

00:00-00:30

30 мин

Интервал 2

00:30-01:00

30 мин

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

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

Ошибки

Доля ошибок

Среднее, мс

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

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

Интервал 1

6628161

0

0.000%

324.64

1152.00

1435.00

Интервал 2

6761981

0

0.000%

317.93

1123.00

1410.00

Этап 2 · 600 параллельных входов#

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

Окно анализа

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

Интервал 1

00:00-01:30

1 ч 30 мин

Интервал 2

01:30-03:00

1 ч 30 мин

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

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

Ошибки

Доля ошибок

Среднее, мс

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

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

Интервал 1

20691407

311

0.002%

155.58

658.00

921.00

Интервал 2

20652503

0

0.000%

155.90

769.00

1010.00

Этап 3 · 1500 параллельных входов#

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

Окно анализа

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

Интервал 1

00:00-00:30

30 мин

Интервал 2

00:30-01:00

30 мин

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

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

Ошибки

Доля ошибок

Среднее, мс

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

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

Интервал 1

6726454

1

0.000%

399.13

1418.00

1746.00

Интервал 2

6690191

0

0.000%

400.07

1410.00

1745.00

Этап 4 · 750 параллельных входов#

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

Окно анализа

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

Интервал 1

00:00-01:30

1 ч 30 мин

Интервал 2

01:30-03:00

1 ч 30 мин

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

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

Ошибки

Доля ошибок

Среднее, мс

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

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

Интервал 1

20526205

0

0.000%

196.24

716.00

1012.00

Интервал 2

20489646

1

0.000%

196.59

831.00

1105.00

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

Показатель

1200

600

1500

750

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

полный

полный

полный

полный

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

3600

10800

3600

10800

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

успешно

успешно

успешно

успешно

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

0

311

1

1

Инстансы IDP с рестартами

0 из 2

0 из 2

0 из 2

0 из 2

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

0

0

0

0

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

3719.48

3828.14

3726.85

3797.76

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

4254.00

4265.00

4632.00

4268.00

Средняя загрузка CPU JMeter от лимита, %

45.42

35.08

52.81

38.85

Периоды ограничения CPU JMeter, %

10.34

2.10

18.66

4.90

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

99.82

99.82

99.77

99.83

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

6.23

7.11

7.31

7.30

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

45.33

73.17

62.75

72.65

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

3.80

3.88

4.20

4.13

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

49.19

49.43

58.88

47.92

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

8.06

8.03

8.05

8.08

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

70.23

88.21

88.13

88.23

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

321.00

303.00

422.00

302.00

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

591.00

591.00

594.00

595.00

2.3. Графики#

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

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

Профиль нагрузки

Поведение системы при росте нагрузки

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

Среднее время отклика в зависимости от числа потоков

Доля ошибок в зависимости от числа потоков

P95 ключевых операций в зависимости от числа потоков

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

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

Время отклика по временным интервалам

Доля ошибок по временным интервалам

Объем запросов по временным интервалам

3. Заключение#

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

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

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

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