Бенчмарк¶
CLI¶
fe2o3-bench [OPTIONS]
-m, --mode <MODE> fire-and-forget | with-ack | pub-sub | wal [default: fire-and-forget]
-c, --count <COUNT> Количество сообщений [default: 1000000]
-s, --size <SIZE> Размер сообщения (bytes) [default: 16384]
-a, --address <ADDR> Адрес сервера [default: 127.0.0.1:7427]
-q, --queue <QUEUE> Имя очереди [default: bench_queue]
Без аргументов — интерактивное меню (dialoguer).
Режимы¶
| Режим | Что измеряет | Метод |
|---|---|---|
fire-and-forget |
Raw publish throughput | forget_publish() + PacketType::Standard |
with-ack |
Throughput с подтверждением | publish() + wait_for_ack() per message |
pub-sub |
End-to-end throughput | Publisher + Subscriber, subscriber ack'ает каждое сообщение |
wal |
Durable publish throughput | publish() + PacketType::Durable (WAL persistence) |
Вывод¶
Режим pub-sub выводит publish throughput и receive throughput отдельно.
Рекомендации¶
# Максимальная пропускная способность (16KB, без ack)
cargo run -p bench --release -- -m fire-and-forget -c 1000000 -s 16384
# Реалистичная нагрузка (1KB, с ack)
cargo run -p bench --release -- -m with-ack -c 100000 -s 1024
# End-to-end (стандартный тест)
cargo run -p bench --release -- -m pub-sub -c 500000 -s 16384