I’ve measured how many publishes per second can async_mqtt broker treated.

Environment

AWS EC2 c5.4xlarge, c5.12xlarge

  • Benchmark targets

  • mosquitto version:2.0.11

  • async_mqtt 1.0.6

Single broker, multiple clients. clients are genereted by https://github.com/redboltz/async_mqtt/tree/main/docker bench.sh

It publishes packets and receive it. Measure RTT(Round trip time). Each clinet 100 publish/second (pps). Increase the number of clients until RTT over 1second. For example, the number of client is 6,000, that means 600,000 (600K) pps. Publish payload is 1024 bytes.

Result

QoS0

ec2\broker mosquitto async_mqtt

c5.4xlarge

90

250

c5.12xlarge

90

610

value is Kpps (Kilo publish per second)

QoS1

ec2\broker mosquitto async_mqtt

c5.4xlarge

52

155

c5.12xlarge

52

390

value is Kpps (Kilo publish per second)

QoS2

ec2\broker mosquitto async_mqtt

c5.4xlarge

28

89

c5.12xlarge

28

210

value is Kpps (Kilo publish per second)

bench