Skip to main content
Calcimator

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
  1. Enter the number of concurrent MQTT client connections (devices + apps).
  2. Set the average publish rate per client (messages/min) and payload size in bytes.
  3. Enter the number of unique topics and average subscriptions per client.
  4. Select QoS level (0, 1, or 2) and enter the number of retained messages.
  5. Review Ingest msg/sec, Estimated RAM (MB), and CPU cores needed to right-size your broker.

How the result changes with Connected clients

Connected clientsIngest msg/sec
1,000,00116,666.68
3,500,00158,333.35
6,500,000108,333.33
9,000,000150,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

  1. Identify Input Parameters
    4 parameters
    Connected clients = 10000, Messages/min/client = 1, Avg payload (bytes) = 128, Unique topics = 5000 = 7 input(s) provided
  2. Calculate Ingest msg/sec
    Ingest msg/sec = (connectedClients * msgPerMinPerClient) / 60
    166.67 = 166.67
  3. Calculate Delivery msg/sec
    Delivery msg/sec = totalMsgPerSec * min(avgFanOut, connectedClients)
    1667 = 1667
  4. Calculate Bandwidth
    Bandwidth = (bandwidthBytesPerSec * 8) / (1000 * 1000)
    0.49 = 0.49

Engine last updated .

The questions that sit next to this one — chosen by subject, including calculators filed under a different category.

More in Technology & Computing.