Credits:The XMQ web site is provided by Linotex.The XMQ and SPTK Windows installers are created with Advanced Installer free Open-Source license.
There were 0 unique visitors to this page

MQTT Performance Tests: Encryption

Point-to-Point over TLS 1.3

The point-to-point test with every client connected over TLS 1.3: 25,000 publishers, 25,000 subscribers, each pair on its own topic, QoS 1, a 16-byte payload, ten minutes per rate. Every broker runs at 50K messages a second; 75K and 100K only those whose median latency stayed under 100 ms at the rate before.

Mosquitto and EMQX are in the 50K table and in neither of the other two. Both ran at 50K and both came in over the limit that gates the higher rates - EMQX at a 2.9-second median, Mosquitto at 152.9 seconds, twenty-nine times and fifteen hundred times the 100 ms allowed. Carrying either forward would have measured how long a queue takes to drain rather than how fast a broker delivers, so the 75K and 100K tables compare the three brokers that stayed in the microsecond range: XMQ, FlashMQ and HiveMQ.

Encryption costs one TLS record and one system call per message, on both sides. The memory column shows the other cost: the TLS state of 50,000 connections.

50K messages a second

QoS 1, 16B payload, MQTT 5, 10 minutes per scenario, connect rate 10000/s, TLS 1.3.

BrokerVersionMessagesAchieved rateAvg latencyCPUAvg RAMMedian RAMMax RAM
EMQX6.3.129,790,29849,650/s2.6s1300% mean / 1623% peak9.60 Gb9.49 Gb10.44 Gb
FlashMQ1.27.229,987,08549,978/s225us352% mean / 1517% peak2.65 Gb2.65 Gb2.65 Gb
HiveMQ2026.529,977,37649,962/s423us626% mean / 1594% peak4.35 Gb4.35 Gb4.38 Gb
Mosquitto2.1.216,089,84226,816/s(below target)139s99% mean / 101% peak1.62 Gb1.62 Gb1.62 Gb
XMQ0.9.2029,986,02449,976/s239us345% mean / 393% peak1.62 Gb1.62 Gb1.62 Gb
EMQX
FlashMQ
HiveMQ
Mosquitto
XMQ

Delivery latency over the test

Average latency per interval, by brokerLatency100us1.0ms10.0ms100.0ms1.0s10s100s1000s0s120s240s360s480selapsed

Broker memory (RSS) over the test

Broker memory (RSS) per intervalMemory (RSS)0 Mb5 Gb10 Gb15 Gb20 Gb0s120s240s360s480selapsed

Latency uses a logarithmic axis: the brokers differ by several orders of magnitude in this scenario, and a linear axis would flatten the faster ones onto the baseline. Hover the chart for per-interval values.

75K messages a second

QoS 1, 16B payload, MQTT 5, 10 minutes per scenario, connect rate 10000/s, TLS 1.3.

BrokerVersionMessagesAchieved rateAvg latencyCPUAvg RAMMedian RAMMax RAM
FlashMQ1.27.244,971,48574,952/s235us548% mean / 1523% peak3.97 Gb3.97 Gb3.97 Gb
HiveMQ2026.544,956,34374,927/s1.4ms1098% mean / 1608% peak4.42 Gb4.42 Gb4.42 Gb
XMQ0.9.2044,970,71874,951/s252us485% mean / 587% peak2.40 Gb2.40 Gb2.40 Gb
FlashMQ
HiveMQ
XMQ

Delivery latency over the test

Average latency per interval, by brokerLatency0us1.8ms3.6ms5.4ms7.2ms9.0ms0s120s240s360s480selapsed

Broker memory (RSS) over the test

Broker memory (RSS) per intervalMemory (RSS)0 Mb1.25 Gb2.50 Gb3.75 Gb5 Gb0s120s240s360s480selapsed

Latency uses a logarithmic axis: the brokers differ by several orders of magnitude in this scenario, and a linear axis would flatten the faster ones onto the baseline. Hover the chart for per-interval values.

Not run at this rate: EMQX (the median at the rate before was 2.9 s, over the limit of 100 ms); Mosquitto (the median at the rate before was 152.9 s, over the limit of 100 ms).

100K messages a second

QoS 1, 16B payload, MQTT 5, 10 minutes per scenario, connect rate 10000/s, TLS 1.3.

BrokerVersionMessagesAchieved rateAvg latencyCPUAvg RAMMedian RAMMax RAM
FlashMQ1.27.259,947,99599,913/s254us762% mean / 1526% peak5.28 Gb5.28 Gb5.28 Gb
HiveMQ2026.559,934,05699,890/s4.4ms1399% mean / 1609% peak3.91 Gb3.91 Gb3.92 Gb
XMQ0.9.2059,944,74199,907/s273us599% mean / 768% peak3.19 Gb3.19 Gb3.19 Gb
FlashMQ
HiveMQ
XMQ

Delivery latency over the test

Average latency per interval, by brokerLatency100us1.0ms10.0ms100.0ms0s120s240s360s480selapsed

Broker memory (RSS) over the test

Broker memory (RSS) per intervalMemory (RSS)0 Mb2.50 Gb5 Gb7.50 Gb10 Gb0s120s240s360s480selapsed

Latency uses a logarithmic axis: the brokers differ by several orders of magnitude in this scenario, and a linear axis would flatten the faster ones onto the baseline. Hover the chart for per-interval values.

Not run at this rate: EMQX (the median at the rate before was 2.9 s, over the limit of 100 ms); Mosquitto (the median at the rate before was 152.9 s, over the limit of 100 ms).

EMQX did not answer CONNECT for 17 of its 25,000 publishers and 10 of its 25,000 subscribers within 60 seconds at 50K; those clients were left out of its run.