Skip to content

Бенчмарк

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)

Вывод

Duration: 1.23s
Throughput: 813,008 packets/s
Throughput: 12,703.25 MB/s
Throughput: 12.41 GB/s

Режим 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