MQTT Broker Sizing Calculator
Broker capacity from topic count and message rate.
Inputs
Results
Ingest msg/sec
166.67
Delivery msg/sec1,667
Bandwidth (Mbps)0.49
Est. RAM (MB)33
CPU cores needed1
Avg fan-out ratio10
How to Use This Calculator
- Enter the number of concurrent MQTT client connections (devices + apps).
- Set the average publish rate per client (messages/min) and payload size in bytes.
- Enter the number of unique topics and average subscriptions per client.
- Select QoS level (0, 1, or 2) and enter the number of retained messages.
- Review Ingest msg/sec, Estimated RAM (MB), and CPU cores needed to right-size your broker.
How the result changes with Connected clients
| Connected clients | Ingest msg/sec |
|---|---|
| 1,000,001 | 16,666.68 |
| 3,500,001 | 58,333.35 |
| 6,500,000 | 108,333.33 |
| 9,000,000 | 150,000 |
What each input means
- Connected clients
- Number of concurrent MQTT client connections (devices + apps).
- Messages/min/client
- Average publish rate per client per minute.
- Avg payload (bytes)
- Average MQTT message payload size in bytes.
- Unique topics
- Total unique MQTT topics in the topic tree.
- Subscriptions/client
- Average number of topic subscriptions per client.
- QoS level (0/1/2)
- MQTT QoS: 0 = fire-and-forget, 1 = at-least-once, 2 = exactly-once.
- Retained messages
- Number of retained messages stored on the broker.
What each result means
- Ingest msg/sec
- Total messages per second arriving at the broker.
- Delivery msg/sec
- Total messages per second delivered (including fan-out to subscribers).
- Bandwidth (Mbps)
- Network bandwidth needed for all MQTT traffic (both directions).
- Est. RAM (MB)
- Estimated broker RAM for sessions, subscriptions, retained msgs, and QoS queues.
- CPU cores needed
- Recommended CPU cores (~50K delivery msg/sec per core).
- Avg fan-out ratio
- Average number of subscribers receiving each published message.
How this is calculated
Worked example, using the default values
- Identify Input Parameters4 parametersConnected clients = 10000, Messages/min/client = 1, Avg payload (bytes) = 128, Unique topics = 5000 = 7 input(s) provided
- Calculate Ingest msg/secIngest msg/sec = (connectedClients * msgPerMinPerClient) / 60166.67 = 166.67
- Calculate Delivery msg/secDelivery msg/sec = totalMsgPerSec * min(avgFanOut, connectedClients)1667 = 1667
- Calculate BandwidthBandwidth = (bandwidthBytesPerSec * 8) / (1000 * 1000)0.49 = 0.49
Engine last updated .
Related Calculators
The questions that sit next to this one — chosen by subject, including calculators filed under a different category.
Iot
IoT Data Volume Calculator
Data storage from sensor count, sample rate, and retention.
IotEdge Computing Cost Calculator
Edge vs cloud processing cost from data volume and latency.
DevopsServer Sizing Calculator
Calculate CPU, RAM, storage, and instance count from workload requirements.
IotIoT Sensor Network Calculator
Sensor count and gateway placement from coverage area.
More in Technology & Computing.