benchmark: update with real throughput numbers (Python HTTP, no CLI overhead)
This commit is contained in:
+36
-24
@@ -1,18 +1,38 @@
|
|||||||
# Benchmark Comparison
|
# Benchmark Comparison: shared-SQS vs Yandex Message Queue
|
||||||
|
|
||||||
Итог сравнительных тестов shared-SQS и Yandex MQ.
|
Результаты сравнительных тестов shared-SQS и Yandex MQ.
|
||||||
|
Дата: 2026-04-12.
|
||||||
|
|
||||||
## Главное
|
## Ключевые результаты
|
||||||
|
|
||||||
- shared-SQS показал конкурентоспособные результаты относительно Yandex MQ.
|
- shared-SQS **в 2–2.5x быстрее** Yandex MQ при последовательных запросах.
|
||||||
- На основных API-операциях shared-SQS быстрее или на уровне Yandex MQ.
|
- При высокой параллельности (50 workers) — **паритет**.
|
||||||
- Проверкой охвачены все 17 поддерживаемых SQS-операций.
|
- Cold start shared-SQS — **53ms** vs **131ms** у Yandex MQ.
|
||||||
|
- Покрытие: все 17 SQS-операций.
|
||||||
|
|
||||||
## Показательные результаты
|
## Throughput (SendMessage, Python HTTP)
|
||||||
|
|
||||||
|
Прямое сравнение пропускной способности — тот же скрипт, те же условия запуска.
|
||||||
|
|
||||||
|
| Режим | shared-SQS | Yandex MQ | Разница |
|
||||||
|
|---|---:|---:|---|
|
||||||
|
| Cold start | 53 ms | 131 ms | shared-SQS **2.5x быстрее** |
|
||||||
|
| Sequential, 100 msg | **25 msg/s** (40 ms avg) | 11 msg/s (94 ms avg) | shared-SQS **2.3x быстрее** |
|
||||||
|
| 5 workers × 20 msg | **109 msg/s** (9 ms avg) | 46 msg/s (22 ms avg) | shared-SQS **2.4x быстрее** |
|
||||||
|
| 10 workers × 20 msg | **166 msg/s** (6 ms avg) | 87 msg/s (11 ms avg) | shared-SQS **1.9x быстрее** |
|
||||||
|
| 20 workers × 20 msg | **226 msg/s** (4 ms avg) | 139 msg/s (7 ms avg) | shared-SQS **1.6x быстрее** |
|
||||||
|
| 50 workers × 20 msg | **264 msg/s** (4 ms avg) | 267 msg/s (4 ms avg) | паритет |
|
||||||
|
|
||||||
|
> Тесты запускались с VM в том же датацентре. Без AWS CLI — чистый HTTP (Python urllib + SigV4).
|
||||||
|
|
||||||
|
## Latency по операциям (AWS CLI)
|
||||||
|
|
||||||
|
Замеры через `aws-cli` (включают ~700ms overhead на запуск CLI).
|
||||||
|
Показывают **относительную** разницу между провайдерами.
|
||||||
|
|
||||||
Формат: min / avg / max / p95, миллисекунды.
|
Формат: min / avg / max / p95, миллисекунды.
|
||||||
|
|
||||||
| Operation | Yandex MQ | shared-SQS |
|
| Операция | Yandex MQ | shared-SQS |
|
||||||
|---|---:|---:|
|
|---|---:|---:|
|
||||||
| GetQueueUrl | 766 / 1346 / 2266 / 2060 | 739 / 752 / 770 / 760 |
|
| GetQueueUrl | 766 / 1346 / 2266 / 2060 | 739 / 752 / 770 / 760 |
|
||||||
| GetQueueAttributes | 804 / 820 / 847 / 828 | 738 / 752 / 768 / 765 |
|
| GetQueueAttributes | 804 / 820 / 847 / 828 | 738 / 752 / 768 / 765 |
|
||||||
@@ -25,25 +45,17 @@
|
|||||||
| DeleteMessageBatch 10 | 818 / 845 / 872 / 864 | 742 / 783 / 821 / 810 |
|
| DeleteMessageBatch 10 | 818 / 845 / 872 / 864 | 742 / 783 / 821 / 810 |
|
||||||
| ChangeMessageVisibilityBatch 10 | 806 / 829 / 848 / 841 | 803 / 824 / 838 / 836 |
|
| ChangeMessageVisibilityBatch 10 | 806 / 829 / 848 / 841 | 803 / 824 / 838 / 836 |
|
||||||
|
|
||||||
## Покрытие
|
> Абсолютные цифры включают overhead AWS CLI (~700ms). Реальная latency сервиса — 4–40ms (см. таблицу throughput выше).
|
||||||
|
|
||||||
В тестах проверены:
|
## Покрытие операций
|
||||||
- все 17 SQS-операций;
|
|
||||||
- smoke-сценарии;
|
|
||||||
- batch операции;
|
|
||||||
- queue lifecycle;
|
|
||||||
- tags;
|
|
||||||
- visibility timeout.
|
|
||||||
|
|
||||||
## Throughput
|
В тестах проверены все 17 SQS-операций:
|
||||||
|
|
||||||
Тест `SendMessage 1KB`, 5 воркеров по 10 сообщений:
|
- **Latency-сравнение (10):** GetQueueUrl, GetQueueAttributes, SendMessage, SendMessageBatch, ReceiveMessage, DeleteMessage, DeleteMessageBatch, ChangeMessageVisibility, ChangeMessageVisibilityBatch, SetQueueAttributes
|
||||||
|
- **Функционально (4):** CreateQueue, DeleteQueue, ListQueues, PurgeQueue
|
||||||
| Provider | Success | Total Time | Approx. Throughput |
|
- **Tag-операции (3):** TagQueue, UntagQueue, ListQueueTags
|
||||||
|---|---:|---:|---:|
|
|
||||||
| Yandex MQ | 50 / 50 | 9116 ms | ~5 msg/s |
|
|
||||||
| shared-SQS | 50 / 50 | 8580 ms | ~5 msg/s |
|
|
||||||
|
|
||||||
## Вывод
|
## Вывод
|
||||||
|
|
||||||
shared-SQS уже выглядит сильной AWS SQS-compatible реализацией для пользовательских сценариев: latency низкая, batch-операции быстрые, покрытие операций полное.
|
shared-SQS — полнофункциональная AWS SQS-совместимая реализация.
|
||||||
|
В прямом сравнении с Yandex MQ: быстрее при малой и средней параллельности, паритет при высокой нагрузке.
|
||||||
|
|||||||
Reference in New Issue
Block a user