All Projects → hui6075 → mqtt-bm-latency

hui6075 / mqtt-bm-latency

Licence: Apache-2.0 license
A MQTT benchmark tool to measure the broker's forwarding latency.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to mqtt-bm-latency

Kafka Monitor
Xinfra Monitor monitors the availability of Kafka clusters by producing synthetic workloads using end-to-end pipelines to obtain derived vital statistics - E2E latency, service produce/consume availability, offsets commit availability & latency, message loss rate and more.
Stars: ✭ 1,817 (+6389.29%)
Mutual labels:  latency, broker
waldur-mastermind
Waldur MasterMind is a hybrid cloud orchestrator.
Stars: ✭ 37 (+32.14%)
Mutual labels:  broker
rtiperftest
RTI Perftest is a command-line application that measures the Latency and Throughput of very configurable scenarios that use RTI Connext DDS middleware to send messages.
Stars: ✭ 38 (+35.71%)
Mutual labels:  latency
spicedb
Open Source, Google Zanzibar-inspired fine-grained permissions database
Stars: ✭ 3,358 (+11892.86%)
Mutual labels:  latency
cult
CPU Ultimate Latency Test.
Stars: ✭ 67 (+139.29%)
Mutual labels:  latency
LiveVideo10ms
Real time video decoding on android
Stars: ✭ 41 (+46.43%)
Mutual labels:  latency
Multi-Ping
No description or website provided.
Stars: ✭ 22 (-21.43%)
Mutual labels:  latency
low-latency-system
Everything about low latency system.
Stars: ✭ 48 (+71.43%)
Mutual labels:  latency
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+11717.86%)
Mutual labels:  broker
mqtt-broker
A tokio-based MQTT v5 broker written in pure Rust [WIP]
Stars: ✭ 110 (+292.86%)
Mutual labels:  broker
goanalyzer
improved go tool trace goroutine analysis
Stars: ✭ 30 (+7.14%)
Mutual labels:  latency
Comcast
Simulating shitty network connections so you can build better systems.
Stars: ✭ 7,703 (+27410.71%)
Mutual labels:  latency
hedgedhttp
Hedged HTTP client which helps to reduce tail latency at scale.
Stars: ✭ 103 (+267.86%)
Mutual labels:  latency
JUnitPerf
API performance testing framework built using JUnit
Stars: ✭ 48 (+71.43%)
Mutual labels:  latency
core-latency
A simple benchmark which measures latency between CPU cores.
Stars: ✭ 37 (+32.14%)
Mutual labels:  latency
mtr-monitor
Simple MTR runner with grafana and influxdb on board
Stars: ✭ 48 (+71.43%)
Mutual labels:  latency
DuckyPanel
Modern email control panel for WildDuck
Stars: ✭ 33 (+17.86%)
Mutual labels:  forwarding
p2p-forwarder
P2P Forwarder - a tool for farwarding tcp/udp ports. Made using libp2p.
Stars: ✭ 31 (+10.71%)
Mutual labels:  forwarding
fritz
Astronomical data platform for the Zwicky Transient Facility.
Stars: ✭ 20 (-28.57%)
Mutual labels:  broker
Mida
The open-source and cross-platform trading framework
Stars: ✭ 263 (+839.29%)
Mutual labels:  broker

MQTT broker latency measure tool

功能:测量MQTT服务器转发时延。

测试场景:每一个topic都有一个订阅者和一个发布者,订阅者接收到消息时通过时间戳测量消息转发时延。
此外,测量结果还包括发布成功率、发布带宽、转发成功率等。

安装:

go get github.com/hui6075/mqtt-bm-latency

所有依赖包由manul构建。

A MQTT test tool to measure the broker's forwarding latency. Scenario: each topic has a subscriber and a publisher, the publisher publishes #count messages and the subscriber would measure the broker's forwarding latency by the timestamp inside each message's payload. Some other measurement include publish success ratio, publish bandwidth, forwarding success ratio would also be count.

Installation:

go get github.com/hui6075/mqtt-bm-latency

All dependencies are vendored with manul.

The tool supports multiple concurrent clients, configurable message size, etc:

> mqtt-bm-latency --help
Usage of ./mqtt-bm-latency:
  -broker string
        MQTT broker endpoint as scheme://host:port (default "tcp://localhost:1883")
  -topic string
        MQTT topic for outgoing messages (default "/test")
  -username string
        MQTT username (empty if auth disabled)
  -password string
        MQTT password (empty if auth disabled)
  -pubqos int
        QoS for published messages (default 1)
  -subqos int
        QoS for subscribed messages (default 1)
  -size int
        Size of the messages payload (bytes) (default 100)
  -clients int
        Number of clients pair to start (default 10)
  -count int
        Number of messages to send per pubclient (default 100)
  -keepalive int
        Keep alive period in seconds (default 60)
  -format string
        Benchmark results output format: text|json (default "text")
  -quiet
        Suppress logs while running




Two output formats supported: human-readable plain text and JSON.

Example use and output:

> mqtt-bm-latency --broker tcp://127.0.0.1:1883 --count 10 --size 100 --clients 10 --subqos 1 --pubqos 2 --format text
....

=========== PUBLISHER 0 ===========
Publish Success Ratio:   100.000% (10/10)
Runtime (s):             0.035
Pub time min (ms):       1.590
Pub time max (ms):       6.813
Pub time mean (ms):      2.831
Pub time std (ms):       1.594
Pub Bandwidth (msg/sec): 286.345

=========== SUBSCRIBER 4 ===========
Forward Success Ratio:       100.000% (10/10)
Forward latency min (ms):    6.000
Forward latency max (ms):    27.000
Forward latency std (ms):    6.867
Mean forward latency (ms):   15.400

================= TOTAL PUBLISHER (10) =================
Total Publish Success Ratio:   100.000% (100/100)
Total Runtime (sec):           0.037
Average Runtime (sec):         0.031
Pub time min (ms):             1.265
Pub time max (ms):             6.813
Pub time mean mean (ms):       2.462
Pub time mean std (ms):        0.242
Average Bandwidth (msg/sec):   321.516
Total Bandwidth (msg/sec):     3215.158

================= TOTAL SUBSCRIBER (10) =================
Total Forward Success Ratio:      100.000% (100/100)
Forward latency min (ms):         2.000
Forward latency max (ms):         27.000
Forward latency mean std (ms):    4.507
Total Mean forward latency (ms):  10.360

Similarly, in JSON:

> mqtt-bm-latency --broker tcp://127.0.0.1:1883 --count 10 --size 100 --clients 10 --subqos 1 --pubqos 2 --format json --quiet
{
        "publish runs": [{
                "id": 9,
                "pub_successes": 10,
                "failures": 0,
                "run_time": 0.036987145,
                "pub_time_min": 0.8713970000000001,
                "pub_time_max": 11.59584,
                "pub_time_mean": 2.8900005999999996,
                "pub_time_std": 3.0913799647375466,
                "publish_per_sec": 270.3642035631569
        },			...
	],
        "subscribe runs": [{
                "id": 9,
                "actual_published": 10,
                "received": 10,
                "fwd_success_ratio": 1,
                "fwd_time_min": 10,
                "fwd_time_max": 36,
                "fwd_time_mean": 20.8,
                "fwd_time_std": 9.101892355133874
        },			...
	],
        "publish totals": {
                "publish_success_ratio": 1,
                "successes": 100,
                "failures": 0,
                "total_run_time": 0.039432823000000006,
                "avg_run_time": 0.0363683729,
                "pub_time_min": 0.8713970000000001,
                "pub_time_max": 11.59584,
                "pub_time_mean_avg": 2.5923666000000005,
                "pub_time_mean_std": 0.2653321545301076,
                "total_msgs_per_sec": 2752.9351662099743,
                "avg_msgs_per_sec": 275.2935166209974
        },
        "receive totals": {
                "fwd_success_ratio": 1,
                "successes": 100,
                "actual_total_published": 100,
                "fwd_latency_min": 2,
                "fwd_latency_max": 37,
                "fwd_latency_mean_avg": 14.37,
                "fwd_latency_mean_std": 4.129581630679366
        }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].