Нагрузка на Entaxy

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

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

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

Производительность Entaxy измерялась с использованием следующих API: Echo.

  1. Echo - возращает любой полученный запрос обратно;

Тесты проводились с использованием 50, 100, 200, 300, 500 и 1000 одновременно эмулируемых пользователей.
Одновременные пользователи означают, что JMeter создает нескольких пользователей, которые одновременно обращаются к шлюзу API.
Используемые размеры сообщений: 7B, 1KB, 10KB, 100KB.

Для измерения производительности каждого теста использовались две ключевые метрики производительности:
- Пропускная способность (Throughput) : измеряет количество вызовов API, которые сервер шлюза API обрабатывал в течение определенного интервала времени (например, в секунду).
- Время отклика (Average): измеряет среднее время обработки операции (вызов API).

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

entaxy deploy

Конфигурация стенда, на котором проводилась нагрузка:

NAME

HDD (GB)

DATAS

RAM(GB)

CPU

postgres

120

7TB

8

8

krf1

40

3TB

16

4

krf2

40

3TB

16

4

krf3

40

3TB

16

4

amq1

40

3TB

16

4

amq2

40

3TB

16

4

ngnix

40

3TB

16

4

  • Entaxy 1.8.2

  • Java 11 Liberica

  • Ubuntu 20.04

Результаты

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

Duration – длительность.
Данная настройка указывает, в течение какого промежутка времени будет выполняться тест (sec).
Number of threads – количество эмулируемых пользователей, одновременно обращающихся к шлюзу API (sum).
Message size – размер тела передаваемого запроса.

Duration (sec)

600

600

600

600

Number of threads (sum)

50/100/200 300/500/1000

50/100/200 300/500/1000

50/100/200 300/500/1000

50/100/200 300/500/1000

Message size

7b

1kb

10kb

100kb

Пропускная способность

На следующем графике показаны изменения пропускной способности в зависимости от количества одновременно работающих пользователей и размера сообщения.

Пропускная способность (запросов/секунду) по сравнению с количеством одновременно работающих пользователей. Message size: 7b, 1kb, 10kb, 100kb.

throught thread 3nodes630

В ходе теста система показала:

  • среднюю пропускную способность 6300 запросов в секунду при нагрузке до 50 виртуальных пользователей включительно и message size 7b и 1kb.

  • среднюю пропускную способность 5800 запросов в секунду при нагрузке до 50 виртуальных пользователей включительно и message size 10kb.

  • среднюю пропускную способность 2200 запросов в секунду при нагрузке до 50 виртуальных пользователей включительно и message size 100kb.

  • среднюю пропускную способность 7000 запросов в секунду при нагрузке до 100 виртуальных пользователей включительно и message size 7b и 1kb.

  • среднюю пропускную способность 6500 запросов в секунду при нагрузке до 100 виртуальных пользователей включительно и message size 10kb.

  • среднюю пропускную способность 2600 запросов в секунду при нагрузке до 100 виртуальных пользователей включительно и message size 100kb.

  • среднюю пропускную способность 7400 запросов в секунду при нагрузке до 200 виртуальных пользователей включительно и message size 7b и 1kb.

  • среднюю пропускную способность 6800 запросов в секунду при нагрузке до 200 виртуальных пользователей включительно и message size 10kb.

  • среднюю пропускную способность 2500 запросов в секунду при нагрузке до 200 виртуальных пользователей включительно и message size 100kb.

  • среднюю пропускную способность 7500 запросов в секунду при нагрузке до 300 виртуальных пользователей включительно и message size 7b и 1kb.

  • среднюю пропускную способность 7000 запросов в секунду при нагрузке до 300 виртуальных пользователей включительно и message size 10kb.

  • среднюю пропускную способность 2300 запросов в секунду при нагрузке до 300 виртуальных пользователей включительно и message size 100kb.

  • среднюю пропускную способность 7700 запросов в секунду при нагрузке до 500 виртуальных пользователей включительно и message size 7b.

  • среднюю пропускную способность 8500 запросов в секунду при нагрузке до 500 виртуальных пользователей включительно и message size 1kb.

  • среднюю пропускную способность 7000 запросов в секунду при нагрузке до 500 виртуальных пользователей включительно и message size 10kb.

  • среднюю пропускную способность 2200 запросов в секунду при нагрузке до 500 виртуальных пользователей включительно и message size 100kb.

  • среднюю пропускную способность 8000 запросов в секунду при нагрузке до 1000 виртуальных пользователей включительно и message size 7b и 1kb.

  • среднюю пропускную способность 7000 запросов в секунду при нагрузке до 1000 виртуальных пользователей включительно и message size 10kb.

  • среднюю пропускную способность 1800 запросов в секунду при нагрузке до 1000 виртуальных пользователей включительно и message size 100kb.

Время отклика

На следующем графике показаны изменения времени отклика в зависимости от количества одновременно работающих пользователей и размера сообщения.

Среднее время отклика по сравнению с количеством одновременно работающих пользователей. Message size: 7b, 1kb, 10kb, 100kb.

average thread 3nodes630

В ходе теста система показала:

  • среднее время отклика менее 8 миллисекунд при нагрузке до 50 виртуальных пользователей включительно и message size 7b,1kb, 10kb.

  • среднее время отклика менее 20 миллисекунд при нагрузке до 50 виртуальных пользователей включительно и message size 100kb.

  • среднее время отклика менее 14 миллисекунд при нагрузке до 100 виртуальных пользователей включительно и message size 7b,1kb, 10kb.

  • среднее время отклика менее 40 миллисекунд при нагрузке до 100 виртуальных пользователей включительно и message size 100kb.

  • среднее время отклика менее 25 миллисекунд при нагрузке до 200 виртуальных пользователей включительно и message size 7b,1kb, 10kb.

  • среднее время отклика менее 80 миллисекунд при нагрузке до 200 виртуальных пользователей включительно и message size 100kb.

  • среднее время отклика менее 40 миллисекунд при нагрузке до 300 виртуальных пользователей включительно и message size 7b,1kb, 10kb.

  • среднее время отклика менее 130 миллисекунд при нагрузке до 300 виртуальных пользователей включительно и message size 100kb.

  • среднее время отклика менее 70 миллисекунд при нагрузке до 500 виртуальных пользователей включительно и message size 7b,1kb, 10kb.

  • среднее время отклика менее 220 миллисекунд при нагрузке до 500 виртуальных пользователей включительно и message size 100kb.

  • среднее время отклика менее 150 миллисекунд при нагрузке до 1000 виртуальных пользователей включительно и message size 7b,1kb, 10kb.

  • среднее время отклика менее 530 миллисекунд при нагрузке до 1000 виртуальных пользователей включительно и message size 100kb.

Сравнение результатов

Сравнение пропускной способности

Пропускная способность (запросов/в секунду) по сравнению с одновременно работающими пользователями и размером сообщений.

throught 7b630
throught 1kb630
throught 10kb630
throught 100kb630

Загрузка процессоров на хостах Entaxy, Nginx, JMeter

Загрузка процессора на хосте Nginx

CPU nginx

В ходе теста система показала: Загрузка процессора на хосте с Nginx - низкая. Наблюдается постепенное увеличение загрузки процессора Nginx при увеличении нагрузки и количества пользователей.

Загрузка процессора на платформе Entaxy-1

CPU entaxy 1

В ходе теста система показала: Загрузка процессора на платформе Entaxy 1 - средняя. Наблюдается постепенное увеличение загрузки процессора при увеличении нагрузки и количества пользователей.

Загрузка процессора на платформе Entaxy-2

CPU entaxy 2

В ходе теста система показала: Загрузка процессора на платформе Entaxy 2 - средняя. Наблюдается постепенное увеличение загрузки процессора при увеличении нагрузки и количества пользователей.

Загрузка процессора на платформе Entaxy-3

CPU entaxy 3

В ходе теста система показала: Загрузка процессора на платформе Entaxy 3 - высокая. Наблюдается постепенное увеличение загрузки процессора при увеличении нагрузки и количества пользователей.

Загрузка процессора на платформе JMeter

CPU jmeter

В ходе теста система показала: Загрузка процессора на хостах JMeter - низкая. Наблюдается постепенное увеличение загрузки процессоров хостов JMeter входящих в систему, при увеличении нагрузки.

Использование памяти на хостах Entaxy, Nginx

RAM hosts

В ходе теста система показала: Использование памяти низкое и практически не зависит от количества виртуальных пользователей и размера пакета.

Использование дисковой подсистемы на хостах Entaxy, Nginx

FS hosts

В ходе теста система показала: Использование дисковой подсистемы практически не зависит от количества виртуальных пользователей и размера пакета.

Нагрузка на сеть на хостах Entaxy, Nginx, JMeter

network hosts

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

Тест Надежности (12-часовой)

Нагрузка в 150 виртуальных пользователей при размере пакета 100kb (80% нагрузка от пиковой) и 12-часовая продолжительность теста было условием для тестируемой системы.

Параметр

Значение

Duration (sec)

43200

Number of threads (sum)

150

Message size

100kb

В ходе теста система показала:

Average response time (ms)

Error per seconds, %

Throughput (rps)

Threads

Message size

64

0,00

2300

150

100kb

Параметр

Jmeter-main

Jmeter-server

Jmeter-server

Processor Time

40

60

60

RAM

80

60

60

DiskTime

0,1

0,1

0,1

Network traffic

1,8 Gbps

1,5 Gbps

1,5 Gbps

Параметр

Entaxy-1

Entaxy-2

Entaxy-3

Nginx

CPU

65

90

99

80

RAM

32

15

15

5

Disk

75

70

70

60

Network traffic

80 MB/s

80 MB/s

80 MB/s

480 MB/s

Выводы

  1. Достигнуты максимальные значения пропускной способности системы при размерах пакетов в 7b, 1kb, 10kb, 100kb и соотношении к количеству виртуальных пользователей:

    • Максимальная пропускная способность при размере пакета в 7b и 1kb составляет 8000 запросов в секунду (rps) при нагрузке в 1000 виртуальных пользователей.

    • Максимальная пропускная способность при размере пакета в 10kb составляет 7000 запросов в секунду (rps) при нагрузке в 1000 виртуальных пользователей.

    • Максимальная пропускная способность при размере пакета в 100kb составляет 2600 запросов в секунду (rps) при нагрузке в 100 виртуальных пользователей.

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

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