Мы разработали простой тестовый сценарий для поиска предельных характеристик производительности 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.
Этот сценарий имитирует типичное использование JoyQueue в онлайн-бизнесе. Например, сервис заказов электронной коммерции при получении запроса на оформление заказа через приложение создаёт заказ успешно и отправляет сообщение для очистки корзины покупок, статистики анализа и других последующих асинхронных операций.
В этом сценарии обычно отправляется только одно сообщение за раз, используется синхронный способ отправки, и требуется высокая надёжность отправки сообщений и низкая задержка.
Этот сценарий имитирует использование потоковых вычислений для обработки больших объёмов данных с помощью 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 )