1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-JoyQueue

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
performance.md 6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 04:32 74955ee

Производительность

Мы разработали простой тестовый сценарий для поиска предельных характеристик производительности JoyQueue.

Тестовая среда

В эксперименте мы использовали один сервер для развёртывания сервера JoyQueue Server со следующей конфигурацией:

Аппаратное обеспечение Конфигурация
Процессор Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz с 8 ядрами x 2
Память 32 ГБ x 8 RAM
SSD 960 ГБ x 6 RAID5
Сетевая карта 10 Gigabit Ethernet

Клиенты были развёрнуты в Docker, каждый Docker был настроен следующим образом:

Аппаратное обеспечение Конфигурация
Процессор 2 ядра
Память 4 ГБ RAM
SSD Нет
Сетевая карта 10 Gigabit Ethernet

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

Мы выбрали два типичных сценария для тестирования предельной пропускной способности JoyQueue.

Сценарий 1: Онлайн-бизнес-сценарий

Этот сценарий имитирует типичное использование JoyQueue в онлайн-бизнесе. Например, сервис заказов электронной коммерции при получении запроса на оформление заказа через приложение создаёт заказ успешно и отправляет сообщение для очистки корзины покупок, статистики анализа и других последующих асинхронных операций.

В этом сценарии обычно отправляется только одно сообщение за раз, используется синхронный способ отправки, и требуется высокая надёжность отправки сообщений и низкая задержка.

Сценарий 2: Потоковые вычисления

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

В этом сценарии необходимо обрабатывать большие объёмы данных в реальном времени, ожидается, что у JoyQueue будет высокая пропускная способность, и он не чувствителен к задержке, обычно используется асинхронная пакетная отправка.

План тестирования

Сценарий Способ отправки Размер пакета Метод сжатия сообщений Размер тестового сообщения Количество разделов Клиент
Онлайн-бизнес Синхронный 1 Без сжатия 1 КБ 200 joyqueue-client-4.1.0
Потоковые вычисления Асинхронный 100 LZ4 1 КБ 200 kafka-clients-2.1.1

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

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

Производительность отправки

Результаты тестирования производительности отправки следующие:

Сценарий QPS Параллелизм Задержка AVG/TP99/TP999 (мс) Частота отказов (%)
Онлайн-бизнес 510, 924 400 1/4/8 0
Потоковые вычисления 32, 961, 776 900 N/A 0

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

Сценарий Загрузка процессора (%) Использование процессора Использование памяти (%) Скорость входящего/исходящего сетевого трафика (МБ/с) Загруженность диска (%)
Онлайн-бизнес 61 32.1 12.22 587.1/41.56 42
Потоковые вычисления 19 5.52 11.88 886.11/4.63 53

Потребительская производительность

Когда производительность достигла предела, мы одновременно увеличили группу из 200 параллельных потребителей (столько же, сколько разделов), потребители только извлекали сообщения без какой-либо логики потребления. Результаты теста показали:

  • Скорость потребления = скорость производства, без накопления;
  • Добавление потребителей не повлияло на производительность производства.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-JoyQueue.git
git@api.gitlife.ru:oschina-mirror/mirrors-JoyQueue.git
oschina-mirror
mirrors-JoyQueue
mirrors-JoyQueue
master