TY - GEN
T1 - MuMQ
T2 - 23rd IEEE International Symposium on Local and Metropolitan Area Networks, LANMAN 2017
AU - Pipatsakulroj, Wiriyang
AU - Visoottiviseth, Vasaka
AU - Takano, Ryousei
N1 - Publisher Copyright:
© 2017 IEEE.
PY - 2017/7/7
Y1 - 2017/7/7
N2 - A message broker is an imperative component in IoT systems, and it works as a gateway between IoT devices and application platforms. With the growth of IoT devices today, these systems can easily overwhelm message brokers unless the software can fully utilize hardware resources such as multi-core facility. This paper presents muMQ, a high-performance MQTT broker running on Commercial-Off-The-Shelf hardware. It tackles the challenge to improve the performance of message brokering on a single machine by efficiently utilizing multi-core CPUs. First, muMQ exploits an event-driven I/O mechanism for multi-core scalability. Each CPU core equally handles dispatched TCP connections and locally processes MQTT logic. Second, muMQ adopts a user-level TCP/IP stack, mTCP with DPDK, to avoid the overhead of the in-kernel TCP/IP stack, including system call overhead and resource contention. We evaluate the effectiveness of our approach through experiments. The results show that muMQ can handle 512K or greater long-lived subscribers with no message loss; muMQ achieves a publish messaging rate at 930K messages per second, which is 5.38 times faster than an existing MQTT broker. We also confirm mTCP accelerates the performance by 1.8 times compared with muMQ using the in-kernel TCP/IP stack.
AB - A message broker is an imperative component in IoT systems, and it works as a gateway between IoT devices and application platforms. With the growth of IoT devices today, these systems can easily overwhelm message brokers unless the software can fully utilize hardware resources such as multi-core facility. This paper presents muMQ, a high-performance MQTT broker running on Commercial-Off-The-Shelf hardware. It tackles the challenge to improve the performance of message brokering on a single machine by efficiently utilizing multi-core CPUs. First, muMQ exploits an event-driven I/O mechanism for multi-core scalability. Each CPU core equally handles dispatched TCP connections and locally processes MQTT logic. Second, muMQ adopts a user-level TCP/IP stack, mTCP with DPDK, to avoid the overhead of the in-kernel TCP/IP stack, including system call overhead and resource contention. We evaluate the effectiveness of our approach through experiments. The results show that muMQ can handle 512K or greater long-lived subscribers with no message loss; muMQ achieves a publish messaging rate at 930K messages per second, which is 5.38 times faster than an existing MQTT broker. We also confirm mTCP accelerates the performance by 1.8 times compared with muMQ using the in-kernel TCP/IP stack.
KW - MQTT
KW - high performance computing
KW - message broker
KW - multi-core system
KW - user-level TCP/IP stack
UR - https://www.scopus.com/pages/publications/85027287337
U2 - 10.1109/LANMAN.2017.7972165
DO - 10.1109/LANMAN.2017.7972165
M3 - Conference contribution
AN - SCOPUS:85027287337
T3 - IEEE Workshop on Local and Metropolitan Area Networks
BT - LANMAN 2017 - 23rd IEEE International Symposium on Local and Metropolitan Area Networks
PB - IEEE Computer Society
Y2 - 12 June 2017 through 14 June 2017
ER -