HiveMQ Edge System Requirements

HiveMQ Edge is an MQTT broker, MQTT-SN gateway and modular industrial protocol converter that is designed to run on constrained/embedded hardware.

Operating Systems

  • Linux, Windows, macOS.

Java Runtime Environment

  • Production: OpenJDK 11 or newer is required.

  • Development: OpenJDK 11 or newer is recommended.

System resources
HiveMQ Edge scales with your system resources. If you add more CPUs and RAM, HiveMQ Edge delivers higher throughput and lower latencies.

Linux Configuration Optimizations

The following sections describe how to optimize your Linux configuration for HiveMQ Edge.

Open file limit

If you run HiveMQ Edge on a Linux operating system, make sure that HiveMQ processes are allowed to open a sufficient number of files. To easily adjust the limit, add the following lines to the /etc/security/limits.conf file:

hivemq  hard    nofile  10000
hivemq  soft    nofile  10000
root    hard    nofile  10000
root    soft    nofile  10000

Adjust TCP settings for HiveMQ Edge

On systems with many connections, it can be necessary to adjust your TCP configurations and enable the system to open more sockets. To make these adjustments, add the following lines to the /etc/sysctl.conf file:

# This causes the kernel to actively send RST packets when a service is overloaded.
net.ipv4.tcp_fin_timeout = 30

# The maximum file handles that can be allocated.
fs.file-max = 5097152

# Enable fast recycling of waiting sockets.
net.ipv4.tcp_tw_recycle = 1

# Allow to reuse waiting sockets for new connections when it is safe from protocol viewpoint.
net.ipv4.tcp_tw_reuse = 1

# The default size of receive buffers used by sockets.
net.core.rmem_default = 524288

# The default size of send buffers used by sockets.
net.core.wmem_default = 524288

# The maximum size of received buffers used by sockets.
net.core.rmem_max = 67108864

# The maximum size of sent buffers used by sockets.
net.core.wmem_max = 67108864

# The size of the receive buffer for each TCP connection. (min, default, max)
net.ipv4.tcp_rmem = 4096 87380 16777216

# The size of the sent buffer for each TCP connection. (min, default, max)
net.ipv4.tcp_wmem = 4096 65536 16777216

To apply your changes, type sysctl -p or restart the system.