Нагрузка на Entaxy
Настоящее тестирование представляло собой исследование пропускных способностей Entaxy c применением для нагрузочного тестирования системы Apache JMeter.
Цель тестирования:
Целью проведения нагрузочного тестирования является установление реальных пропускных способностей low-code платформы Entaxy, запущенной на данной инфраструктуре. Оценка производительности и определение рекомендуемого значения предельно допустимых нагрузок на компоненты.
Производительность Entaxy измерялась с использованием следующих API: Echo.
-
Echo - возращает любой полученный запрос обратно;
Тесты проводились с использованием 50, 100, 200, 300, 500 и 1000 одновременно эмулируемых пользователей.
Одновременные пользователи означают, что JMeter создает нескольких пользователей,
которые одновременно обращаются к шлюзу API.
Используемые размеры сообщений: 7B, 1KB, 10KB, 100KB.
Для измерения производительности каждого теста использовались две ключевые метрики производительности:
- Пропускная способность (Throughput) : измеряет количество вызовов API, которые сервер
шлюза API обрабатывал в течение определенного интервала времени (например, в
секунду).
- Время отклика (Average): измеряет среднее время обработки операции (вызов API).
Деплой, используемый для теста
Конфигурация стенда, на котором проводилась нагрузка:
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.
В ходе теста система показала:
-
среднюю пропускную способность 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.
В ходе теста система показала:
-
среднее время отклика менее 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.
Сравнение результатов
Сравнение пропускной способности
Пропускная способность (запросов/в секунду) по сравнению с одновременно работающими пользователями и размером сообщений.
Загрузка процессоров на хостах Entaxy, Nginx, JMeter
Загрузка процессора на хосте Nginx
В ходе теста система показала: Загрузка процессора на хосте с Nginx - низкая. Наблюдается постепенное увеличение загрузки процессора Nginx при увеличении нагрузки и количества пользователей.
Загрузка процессора на платформе Entaxy-1
В ходе теста система показала: Загрузка процессора на платформе Entaxy 1 - средняя. Наблюдается постепенное увеличение загрузки процессора при увеличении нагрузки и количества пользователей.
Загрузка процессора на платформе Entaxy-2
В ходе теста система показала: Загрузка процессора на платформе Entaxy 2 - средняя. Наблюдается постепенное увеличение загрузки процессора при увеличении нагрузки и количества пользователей.
Загрузка процессора на платформе Entaxy-3
В ходе теста система показала: Загрузка процессора на платформе Entaxy 3 - высокая. Наблюдается постепенное увеличение загрузки процессора при увеличении нагрузки и количества пользователей.
Загрузка процессора на платформе JMeter
В ходе теста система показала: Загрузка процессора на хостах JMeter - низкая. Наблюдается постепенное увеличение загрузки процессоров хостов JMeter входящих в систему, при увеличении нагрузки.
Использование памяти на хостах Entaxy, Nginx
В ходе теста система показала: Использование памяти низкое и практически не зависит от количества виртуальных пользователей и размера пакета.
Использование дисковой подсистемы на хостах Entaxy, Nginx
В ходе теста система показала: Использование дисковой подсистемы практически не зависит от количества виртуальных пользователей и размера пакета.
Нагрузка на сеть на хостах Entaxy, Nginx, JMeter
В ходе теста система показала: Нагрузка на сеть постепенно увеличивается с увеличением размера пакета.
Тест Надежности (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 |
Выводы
-
Достигнуты максимальные значения пропускной способности системы при размерах пакетов в 7b, 1kb, 10kb, 100kb и соотношении к количеству виртуальных пользователей:
-
Максимальная пропускная способность при размере пакета в 7b и 1kb составляет 8000 запросов в секунду (rps) при нагрузке в 1000 виртуальных пользователей.
-
Максимальная пропускная способность при размере пакета в 10kb составляет 7000 запросов в секунду (rps) при нагрузке в 1000 виртуальных пользователей.
-
Максимальная пропускная способность при размере пакета в 100kb составляет 2600 запросов в секунду (rps) при нагрузке в 100 виртуальных пользователей.
-
-
В ходе проведения группы тестов система работала стабильно, критических ошибок не было. Пропускная способность и время отклика находятся в пределах ожидаемых пороговых значений.
-
На основании проведенных тестов можно сделать вывод, что платформа Entaxy соответствует требованиям по надежности и производительности и может быть эффективно использована для создания и запуска сложных интеграционных маршрутов.