Mosquitto Requirements
Server Hardware
Hardware requirements for Eclipse Mosquitto can vary depending on the client connections and message rates expected. The minimum specification below is for a low power device supporting 10s of clients with a low message rate. The recommended specification is for a device capable of supporting 10,000s of clients with reasonable message rates. The "with stream processing" specification includes extra RAM and storage for stream processing support.
Minimum | Recommended | Recommended (with stream processing) | Comment | |
---|---|---|---|---|
RAM | 128MB | 4GB | 16GB | |
CPU | 1 core 32-bit ARM | Recent 4+ core AMD/Intel | Recent 4+ core AMD/Intel | |
Storage | 20MB | 200MB | 40GB |
Cluster System Requirements
On each High-Availability node the components need the following system resources:
Server hardware
For the Load Balancer we recommend HAProxy. The recommended hardware components for the instance would be: Recent 4+ core CPU (AMD or Intel) and 8GB of RAM, if Load Balancers run separately, 8+ cores if load balancers run on same hosts as the Mosquitto nodes. As storage, 5 GB (R/W speed at least 500 MB/s) in a RAID is recommended.
Mosquitto Node | Load balancer | Mosquitto Node + Loadbalancer | |
---|---|---|---|
CPU: | 4+ Cores | 4+ Cores | 8+ Cores |
RAM: | 8GB | 8GB | 8GB |
Storage: | 5GB (500Mb/s +) |
In case stream processing is used, then the following recommendations apply for each node. While the CPU recommendations stay the same, it is proposed to use 24 GB of RAM and 50 GB (R/W speed at least 500 MB/s) of storage.
Stream Plugin usage:
Mosquitto Node | Load balancer | Mosquitto Node + Loadbalancer | |
---|---|---|---|
CPU: | 4+ Cores | 4+ Cores | 8+ Cores |
RAM: | 24GB | 24GB | 24GB |
Storage: | 50GB (500Mb/s +) | 50GB (500Mb/s +) | 50GB (500Mb/s +) |
Network
As shown in the cluster architecture, the following network system is required.
All nodes need to have access to a public network with public IPs (where MQTT clients and browser to view MMC information reside). A private network with private IPs (for communication between nodes, load balancers, and between nodes and Management Center). If this is not explicitly possible then a VPN can be pulled up to privately connect the components. Private network communication is done via TCP, while the Load Balancer are used for SSL termination.
All nodes are 100% replicas from each other and get synchronized in real-time via the private network.
Network speed: Depending on expected bandwidth, 100 Mbit or 1 Gbit network is recommended.
The Network speeds always need to be aligned with desired message bandwidth from your MQTT clients. The upper limit for bandwidth that the Mosquitto cluster can cope with is governed by a lot of factors, however 30 MB/sec or 240 Mbit is an ultimate upper limit what a Mosquitto node can cover under certain circumstances. Therefore, it is recommended that the network between the nodes is at least a Gbit network.