![]() | ||||
| 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: Message PersistencePersistent Point-to-Point: Durable DeliveryThis test repeats one-to-one delivery with persistent sessions, each broker with the persistence it offers, so queued messages can survive a broker restart. The measured rate and latency show the cost of that durability; what a failure can still lose depends on the broker and its configuration - for XMQ see Persistence. The scenario is point-to-point, the same shape as the in-memory point-to-point page: each publisher has its own subscriber on its own topic, so the broker does no fan-out and what is measured is the per-message cost of routing plus the cost of persisting it. Both client groups connect with This configuration answers a particular need, and is not the one most deployments want. Persistence earns its cost where a message that never arrives is worse than a message that arrives late: commands to equipment that is intermittently connected, orders and transactions, anything a subscriber must receive even if it was offline when the message was sent, or if the broker restarted between the two. For live telemetry, metrics and status streams — where the next reading supersedes the last and a gap costs nothing — persistence buys nothing, and the in-memory figures on the other test pages are the ones that apply. It is worth setting the numbers below against that. Workloads that genuinely need durable delivery are usually counted in messages per device per minute rather than per second, so the rates measured here are well clear of what they ask for. The ceiling matters when durable and high-volume traffic share one broker, and the two can be separated: only sessions connecting with The brokers do not persist the same thing, and that is part of the result.This historical XMQ run used Redis AOF with XMQ 1.0.2 and FlashMQ 1.27.2 were re-measured on 2 November 2026 on the same c5n.4xlarge host (16 vCPU, 40 GB) as the other brokers here. Percentiles are shown where the run recorded them; a dash means its result file has no percentile section. QoS 1, 16B payload, MQTT 5, 10 minutes per scenario unless stated, connect rate 10000/s.
EMQX FlashMQ HiveMQ Mosquitto XMQ Delivery latency over the testBroker memory (RSS) over the testLatency 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. |
