Многопоточное нагрузочное тестирование Entaxy с использованием API: Echo

Настоящее тестирование представляло собой исследование пропускных способностей Entaxy c применением системы Apache JMeter.

Цель тестирования:

Целью данного нагрузочного тестирования является оценка производительности low-code платформы Entaxy, запущенной на текущей инфраструктуре.
В рамках теста были использованы несколько параллельных потоков с различными объемами данных для установления реальных пропускных способностей платформы и определения рекомендуемого значения предельно допустимых нагрузок на компоненты.

Производительность Entaxy измерялась с использованием API:Echo (возвращает сообщение Ok в случае успешного получения запроса).

Параметры тестирования:

Тесты были проведены с использованием следующих размеров сообщений, количества потоков и сообщений в час:

Message size

Number of threads

Тест 1. Количество сообщений в час

Тест 2. Количество сообщений в час

Тест 3. Количество сообщений в час

64kb

20

10 000

100 000

1 000 000

128kb

14

1 000

10 000

100 000

256kb

10

500

5 000

50 000

512kb

6

250

2 500

25 000

1024kb

2

125

1 250

12 500

Сумма

52

11 875

118 750

1 187 500

  • Длительность теста - тест продолжается в течение 1 часа или до момента передачи всех данных;

  • Внутри потока данные передаются последовательно - это означает, что если общее количество сообщений в час составляет 1 000 000, а количество потоков равно 20, то в каждом потоке будет обработано по 50 000 сообщений.

Для измерения производительности каждого теста использовались следующие ключевые метрики:

  • Пропускная способность (Throughput): количество вызовов API обрабатываемых в секунду.

  • Количество сообщений (Samples): общее количество выполненных запросов.

  • Длительность теста (Duration): общее время выполнения теста.

Деплой, используемый для теста:

entaxy deploy

Конфигурация стенда:

NAME HDD (GB) RAM(GB) CPU

krf1

40

16

4

krf2

40

16

4

krf3

40

16

4

ngnix

40

16

8

Entaxy 1.10 • Java 11 Liberica • Ubuntu 20.04

Результаты теста

Тест 1.

  • Duration (sec): 40

  • Average response time (ms): 23

  • Throughput (rps): 460

    test1 planned actual

    Размер сообщения

    Ожидаемое количество сообщений в час

    Результат

    Throughput (rps)

    Average (ms)

    64 KB

    10 000

    10 000

    391

    13

    128 KB

    1 000

    938

    57

    60

    256 KB

    500

    500

    30

    83

    512 KB

    250

    252

    11

    93

    1024 KB

    120

    84

    5

    204

    Сумма

    11 875

    11 774

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

Параметр

Entaxy-1

Entaxy-2

Entaxy-3

Nginx

CPU (%)

4

4

4

7

RAM (%)

50

50

50

4

Disk R/W Data

800 KB/s

800 KB/s

800 KB/s

40 KB/s

Network traffic

800 KB/s

800 KB/s

800 KB/s

2 MB/s

Тест 2.

  • Duration (min): 4

  • Average response time (ms): 35

  • Throughput (rps): 520

    test2 planned actual
    Размер сообщения Ожидаемое количество сообщений в час Результат Throughput (rps) Average (ms)

    64 KB

    100 000

    100 000

    442

    7

    128 KB

    10 000

    9 338

    73

    15

    256 KB

    5 000

    5 000

    42

    18

    512 KB

    2 500

    2 502

    19

    25

    1024 KB

    1 250

    834

    4

    39

    Сумма

    118 750

    117 674

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

Параметр

Entaxy-1

Entaxy-2

Entaxy-3

Nginx

CPU (%)

8

8

8

10

RAM (%)

50

50

50

4

Disk R/W Data

10 MB/s

10 MB/s

10 MB/s

80 KB/s

Network traffic

6 MB/s

6 MB/s

6 MB/s

15 MB/s

Тест 3.

  • Duration (min): 40

  • Average response time (ms): 41

  • Throughput (rps): 490

    test3 planned actual
    Размер сообщения Ожидаемое количество сообщений в час Результат Throughput (rps) Average (ms)

    64 KB

    1 000 000

    1 000 000

    416

    7

    128 KB

    100 000

    93 338

    70

    38

    256 KB

    50 000

    50 000

    37

    42

    512 KB

    25 000

    25 002

    17

    43

    1024 KB

    12 500

    8 334

    4

    50

    Тест показывает, что система успешно обработала ожидаемую нагрузку за относительно короткое время, с учетом объема передаваемых данных - 40 минут.

Параметр

Entaxy-1

Entaxy-2

Entaxy-3

Nginx

CPU (%)

70

80

70

10

RAM (%)

50

50

50

4

Disk R/W Data

13 MB/s

13 MB/s

13 MB/s

200 KB/s

Network traffic

15 MB/s

15 MB/s

15 MB/s

50 MB/s

Общие данные:

Message size Number of threads Тест 1. Samples (requests) Duration: 40 sec Тест 1. Throughput (rps) Тест 2. Samples (requests) Duration: 4 min Тест 2. Throughput (rps) Тест 3. Samples (requests) Duration: 40 min Тест 3. Throughput (rps)

64

20

10 000

391

100 000

442

1 000 000

416

128

14

938

57

9 338

73

93 338

70

256

10

500

30

5 000

42

50 000

37

512

6

252

11

2 502

19

25 002

17

1024

2

84

5

834

4

8 334

4

Сумма

52

11 774

117 674

1 176 674

Исходя из результатов трех проведенных тестов, можно сделать следующие общие выводы:

  1. Пропускная способность: Система продемонстрировала высокую пропускную способность при различных объемах сообщений и временных интервалах тестирования. Время отклика оставалось стабильным и низким.

  2. Обработка данных: Система эффективно обработала большие объемы данных за относительно короткие промежутки времени.

  3. Стабильность и надежность: Результаты тестов подтверждают стабильность работы системы при различных условиях тестирования.

  4. Влияние размера сообщений: Более крупные сообщения требуют больше времени на обработку, но система успешно справляется с различными размерами сообщений.