flashmq (1)

A fast light-weight scalable MQTT server

Synopsis

flashmq [-c | --config-file config_file_path] [-t | --test-config] |
     [-h | --help] |
     [-v | --version] |
     [-l | --license]

Description

FlashMQ is a MQTT 3.1, 3.1.1 and 5 broker designed to be light-weight and handle millions of clients and/or messages.

Signals#

SIGHUP#

Reload config file and reopen log files. Listeners are recreated. Bridges are reconnected (when their config has changed), added or removed as necessary.

SIGUSR1#

Reopen log files. Use this in log rotation.

SIGUSR2#

It has been observed that certain implementations of malloc have a high memory use while still having many free blocks. See for instance the libc mailing list discussion Abnormal memory usage with glibc 2.31 related to thread cache and trimming strategy. This can be exacerbated by continuous thread recreation, because of how "memory arenas" are managed. FlashMQ has a fixed number of threads, but that may not be true for loaded plugins. Sending a SIGUSR2 will cause FlashMQ to call malloc_trim(0), possibly resulting in it giving memory back to the operating system.

The action is mostly pretty fast, but if not, the main loop will block during the operation, blocking the ability to accept new connections. The worker threads themselves will keep running and keep serving clients.

Use, or need, of this feature on a regular basis is questionable, but at least it can help in a pinch.

Command-line arguments#

--help | -h#

Print help with synopsis.

--version | -v#

Print FlashMQ version details.

--license | -l#

Print FlashMQ license.

--config-file | -cconfig_file_path#

flashmq will read the config file from the given config_file_path.

Without this option, the default config_file_path is /etc/flashmq/flashmq.conf.

See the flashmq.conf(5) manual page for the format of this file.

--test-config | -t#

Test the configuration, without starting the daemon.

Author

Wiebe Cazemier contact@flashmq.org.

See also

flashmq.conf(5) , https://www.flashmq.org/

Colophon#

The sources for the FlashMQ manual pages are maintained in DocBook 5.2 XML files. The transformation to the multiple destination file formats is done using a bunch of XSLT 1.0 sheets, contributed to this project by Rowan van der Molen.