Systemd <=240 version defaults Max open files to 65535


Observation

The hivemq.log shows statements like the following:

 

 

Consequence

The impact of this is severe.

From Wikipedia (File descriptor )

In Unix and related computer operating systems, a file descriptor (FD, less frequently fildes) is an abstract indicator (handle) used to access a file or other input/output resource, such as a pipe or network socket.

The most immediate impact this will have for HiveMQ is that the broker cannot accept any additional connection, as there are not file descriptors for network sockets left.
This might also impact the ability to write log files or replicate data.

Cause

This is caused when HiveMQ is run as a service, using Systemd version 240 or lower.
Known issue: LimitNOFILE=ininity defaults to 65535 · Issue #6559 · systemd/systemd

Solution

Upgrade Systemd to version 241 or newer

or

Set LimitNOFILE in hivemq.service file to a specific value (i.e. 1000000)