Evaluación del rendimiento de brokers MQTT de código abierto en redes de borde
Un estudio sobre el rendimiento de los brokers MQTT en diferentes condiciones de red.
― 5 minilectura
Tabla de contenidos
El protocolo de Mensajería por Cola y Telemetría (MQTT) es un método popular usado en aplicaciones de Internet de las Cosas (IoT). Ayuda a los dispositivos a comunicarse entre sí de manera efectiva. Este artículo se centra en los brokers MQTT de código abierto, como Mosquitto, EMQX, RabbitMQ, VerneMQ y HiveMQ. Vamos a ver cómo se desempeñan estos brokers en redes de borde, que son redes con recursos limitados. Estudiamos los efectos de la latencia de la red, la varianza y la pérdida de paquetes en su rendimiento.
Objetivos del Estudio
El objetivo principal de este trabajo fue medir el rendimiento de estos brokers MQTT en un contexto de computación en el borde. Queríamos ver cómo operan cuando los dispositivos tienen recursos limitados y cómo diferentes factores afectan su rendimiento. Configuramos un entorno de pruebas automatizado para hacer nuestro análisis más fácil y preciso.
Configuración de la Prueba
Para llevar a cabo nuestro estudio, creamos un laboratorio de pruebas de red. Un laboratorio es un entorno controlado donde podemos realizar experimentos. Usamos dos tipos de configuraciones: una con dispositivos AMD64, que son más potentes, y otra con dispositivos ARM64, que son menos potentes pero más eficientes energéticamente.
Medimos el rendimiento de los brokers observando cuánto tiempo tardaban en responder cuando se enviaban mensajes. Variamos el tamaño de los mensajes para ver cómo eso afectaba los tiempos de respuesta.
Importancia de los Brokers MQTT
MQTT se usa mucho para la comunicación entre dispositivos en sistemas IoT. Elegir el broker MQTT adecuado es crucial, especialmente en sistemas que funcionan en el borde, donde los recursos son limitados y el rendimiento es clave. Hay varios brokers MQTT disponibles, cada uno con sus propias fortalezas y debilidades. Sin embargo, hay pocos estudios que comparen estos brokers en condiciones del mundo real. Este trabajo busca llenar esa brecha.
Pruebas de Rendimiento
En nuestras pruebas, nos enfocamos en cinco brokers MQTT de código abierto bien conocidos. Construimos un entorno que nos permitió medir cómo cada broker manejaba la entrega de mensajes bajo diferentes Condiciones de red. Verificamos su rendimiento en tres escenarios: local, óptimo y el peor de los casos.
Escenario Local
En el escenario local, no agregamos ninguna latencia ni pérdida de paquetes. Esta configuración fue la base para ver cómo se desempeñaba cada broker en condiciones ideales.
Escenario Óptimo
El escenario óptimo fue diseñado para representar las mejores condiciones de rendimiento. Aquí, buscamos una latencia muy baja y problemas de red mínimos.
Escenario del Peor Caso
En el escenario del peor caso, introdujimos retrasos significativos y pérdida de paquetes, que podrían ocurrir en aplicaciones del mundo real. Esto fue importante para ver qué tan bien cada broker podía manejar condiciones difíciles.
Resultados
Nuestros resultados mostraron que el rendimiento de los brokers variaba según las condiciones de la red y el tamaño de los mensajes. Para mensajes pequeños (hasta 10KB), las diferencias en los tiempos de respuesta entre los brokers eran despreciables, lo que significa que todos se desempeñaban de manera similar. Sin embargo, a medida que el tamaño del mensaje aumentaba a 1MB, el rendimiento cayó significativamente.
Impacto del Hardware
Las pruebas indicaron que el tipo de hardware usado tenía un impacto importante en el rendimiento. Los brokers que funcionaban en Máquinas Virtuales (VMs) se desempeñaron mejor que aquellos en Raspberry Pis (RPis). Esto sugiere que la configuración del hardware es un factor clave al decidir qué broker usar.
Hallazgos Específicos
Cuando hicimos pruebas con tres escenarios diferentes, notamos lo siguiente:
Tamaños de Mensajes Pequeños: Con mensajes de hasta 10KB, todos los brokers tenían tiempos de respuesta similares. Las diferencias en rendimiento eran tan pequeñas que podían ignorarse en la mayoría de los casos.
Tamaños de Mensajes Más Grandes: Cuando enviamos mensajes más grandes (1MB), vimos una disminución notable en el rendimiento en todos los brokers. Los tiempos de respuesta aumentaron y las diferencias entre brokers se hicieron más evidentes.
El Hardware Importa: Los brokers desplegados en VMs mostraron tiempos de respuesta más rápidos que los de RPis. Esto es especialmente importante para aplicaciones que requieren baja latencia.
Condiciones de Red: El rendimiento se vio afectado significativamente por la latencia de la red y la pérdida de paquetes. Todos los brokers tuvieron problemas cuando enfrentaron estos inconvenientes, pero algunos los manejaron mejor que otros.
Conclusión
En resumen, medimos el rendimiento de varios brokers MQTT de código abierto en una red diseñada para computación en el borde. Encontramos que para mensajes más pequeños, todos los brokers tuvieron un buen Desempeño y similar. Sin embargo, a medida que los tamaños de los mensajes aumentaron, el rendimiento varió, teniendo las configuraciones de hardware un papel crítico en el desempeño de cada broker.
Nuestros hallazgos deberían guiar a quienes estén considerando qué broker MQTT utilizar, especialmente en aplicaciones IoT donde las condiciones de red y los tamaños de los mensajes pueden variar. La investigación futura podría profundizar más en cómo estos brokers escalan y manejan a muchos usuarios a la vez, ya que este es un aspecto importante a tener en cuenta para cualquier solución IoT.
También podemos extender nuestro laboratorio de pruebas para evaluar otros brokers y protocolos de comunicación, permitiendo una visión más completa de las mejores opciones disponibles para escenarios de computación en el borde.
Título: Engineering and Experimentally Benchmarking Open Source MQTT Broker Implementations
Resumen: The Message Queuing Telemetry Transport (MQTT) protocol is one of the most widely used IoT protocol solutions. In this work, we are especially interested in open-source MQTT Broker implementations (such as Mosquitto, EMQX, RabbitMQ, VerneMQ, and HiveMQ). To this end, we engineer a network testbed to experimentally benchmark the performance of these implementations in an edge computing context with constrained devices. In more detail, we engineer an automated deployment and orchestration of the containerized MQTT broker implementations, with support for deployment across either moderately powerful AMD64 devices, or more resource constrained ARM64 devices. The proposed MQTT implementations are evaluated in terms of overhead response time and different payload sizes. Results showed that the hardware platform used as well as the message size, and the network parameters (latency, packet loss and jitter) have a significant impact on the performance differences between the brokers. All results, software tools and code are fully reproducible and free and open source.
Autores: Jasenka Dizdarevic, Marc Michalke, Admela Jukan
Última actualización: 2023-05-23 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2305.13893
Fuente PDF: https://arxiv.org/pdf/2305.13893
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.