Primeros pasos con las pruebas de rendimiento de MQTT: Escenarios y métricas de prueba comunes

introducción

En el campo de Internet de las cosas, hay una gran cantidad de sensores y dispositivos de control industrial con recursos limitados que se ejecutan en un entorno de red inestable y de bajo ancho de banda, lo que hace que MQTT sea un protocolo de transmisión de mensajes ideal en el escenario de Internet de las cosas. Por lo tanto, MQTT Broker debe garantizar un excelente rendimiento y alta confiabilidad para cumplir con los requisitos de las aplicaciones de IoT.

Antes de proceder a la prueba del sistema, es fundamental comprender los escenarios de prueba básicos y las métricas de rendimiento. En este artículo, proporcionaremos una descripción detallada basada en la experiencia de prueba del equipo de EMQX, que también es aplicable a otras pruebas de MQTT Broker.

Glosario

Protocolo MQTT: MQTT (Message Queuing Telemetry Transport) es un protocolo ligero de transmisión de mensajes basado en el modelo de publicación/suscripción. Aunque tiene la palabra "cola de mensajes" en su nombre, no tiene nada que ver con las colas de mensajes. El protocolo se ha convertido en el protocolo preferido en el campo de Internet de las cosas debido a su simplicidad, flexibilidad, fácil implementación, soporte para QoS y tamaño de mensaje pequeño.

Pruebas de rendimiento: las pruebas de rendimiento se refieren al uso de herramientas de prueba para simular varias condiciones de carga normales, máximas o anormales para evaluar el rendimiento del sistema bajo prueba en varios indicadores de rendimiento. Su propósito es verificar si el sistema puede cumplir con las expectativas del usuario y encontrar cuellos de botella y problemas de rendimiento en el sistema.

Escenarios comunes de prueba de MQTT

MQTT Broker tiene principalmente dos escenarios de prueba:

  • Conexiones simultáneas, incluido el número de conexiones simultáneas y la tasa de conexión.
  • Rendimiento de mensajes, incluido el rendimiento de envío y recepción de mensajes, y algunos factores que afectan el rendimiento del sistema del entorno de producción, como la calidad del servicio, el tamaño de la carga útil, el comodín de tema, etc.

Al diseñar un escenario de prueba de rendimiento específico, especialmente al realizar una PoC o una prueba previa a la implementación, siempre se deben tener en cuenta los dos puntos siguientes:

  • Intente simular el uso en el entorno de producción real tanto como sea posible.
  • Cubrir posibles picos de carga.

Los escenarios de prueba se pueden dividir de acuerdo con las dos dimensiones básicas de conexión y rendimiento de mensajes.

prueba de conexión concurrente

La conexión MQTT es una conexión larga basada en TCP. El cliente primero establece una conexión TCP con MQTT Broker y luego envía una solicitud de inicio de sesión de MQTT. Una vez que la conexión se establece correctamente, el cliente y MQTT Broker mantienen el estado de conexión enviando paquetes de latidos periódicamente. Por lo tanto, establecer y mantener una conexión MQTT durante mucho tiempo requiere ciertos recursos del intermediario MQTT. En un escenario de alta concurrencia, una conexión tan larga consumirá una gran cantidad de recursos del intermediario. Por lo tanto, a través de las pruebas de rendimiento, podemos evaluar cuántas conexiones simultáneas puede soportar MQTT Broker con recursos limitados.

Además, cuanto mayor sea la tasa de conexión (es decir, la cantidad de conexiones nuevas por segundo), más recursos informáticos se requieren. Este factor debe tenerse en cuenta al formular escenarios de prueba, porque en algunos escenarios, una gran cantidad de dispositivos vaya en línea al mismo tiempo, y la capacidad de probar el corredor O este indicador es necesario al planificar la capacidad del sistema.

En la prueba de conexión simultánea, también es necesario considerar si se utiliza la transmisión cifrada TLS/SSL, ya que aumentará la sobrecarga de recursos adicionales de la máquina de presión y el intermediario MQTT. Al planificar sus pruebas, debe evaluar su impacto en el rendimiento.

En resumen, en la prueba de conexión concurrente MQTT, se deben considerar los siguientes tres escenarios:

  1. Aumente gradualmente la cantidad de conexiones simultáneas a una tasa de conexión más baja fija para probar la respuesta del sistema y el consumo de recursos. Esto determina la cantidad máxima de simultaneidad que el sistema puede soportar con recursos de red y hardware dados.
  2. Con un número determinado de conexiones simultáneas, pruebe la respuesta y el consumo de recursos del sistema a diferentes velocidades de conexión.
  3. Al diseñar 1) y 2), distinga entre conexiones TCP normales y conexiones cifradas TLS/SSL.

Prueba de rendimiento de mensajes

Como se mencionó anteriormente, MQTT es un protocolo de transmisión de mensajes basado en el modelo de publicación/suscripción.Es un protocolo asíncrono que implementa tres tipos de publicación-suscripción 1 a 1, 1 a muchos y muchos a 1. Es ampliamente utilizado en varios escenarios de IoT. Por lo tanto, la prueba de rendimiento de mensajes debe cubrir los siguientes tres escenarios:

  1. 1 a 1: Hay igual número de editores y suscriptores. Para cada editor, solo hay un suscriptor que se suscribe a los temas que publica. Es decir, la tasa de entrada de mensajes a MQTT Broker es la misma que la tasa de salida.
  2. Muchos a 1 (informe): un escenario típico de aplicación de IoT, donde hay una gran cantidad de dispositivos de IoT como publicadores, pero solo unos pocos o un solo suscriptor, como una gran cantidad de dispositivos que informan sobre su estado o datos.
  3. 1 a muchos: en el modo de transmisión, una pequeña cantidad de clientes publican mensajes y una gran cantidad de dispositivos se suscriben y consumen mensajes, como el envío de instrucciones desde la terminal de control.

Además, al diseñar escenarios de rendimiento de mensajes, no ignore factores como la calidad del servicio, el tamaño de la carga útil del mensaje, los temas de suscripción con comodines, etc. Diferentes QoS tienen un gran impacto en el rendimiento y el consumo de recursos de la prueba de carga. El tamaño de la carga útil se puede determinar de acuerdo con el uso real.

otras escenas

Para otras funciones de MQTT, como suscripciones compartidas, volcado de mensajes a bases de datos u otras colas de mensajes (MQ), suscripciones de temas masivos y situaciones extremas como conexión/desconexión simultánea de muchos clientes MQTT, se puede diseñar y probar de acuerdo con las necesidades reales. escena.

métricas de rendimiento

Después de diseñar el escenario de prueba, es necesario desarrollar métricas para evaluar el éxito de la prueba.

En las pruebas de rendimiento, los indicadores generalmente se pueden dividir en dos categorías: indicadores del sistema de aplicaciones (como los indicadores de MQTT Broker) e indicadores de recursos informáticos.

  • Los indicadores del sistema de aplicación están relacionados con los escenarios y requisitos del usuario, como el tiempo de respuesta (o retraso), la concurrencia, etc.
  • Las métricas de recursos informáticos están relacionadas con el consumo de recursos de hardware. Para las pruebas de MQTT que analizamos, estas métricas son similares a las de otras pruebas de rendimiento de software, como CPU, memoria, red, E/S de disco.

Los indicadores del sistema MQTT están estrechamente relacionados con los escenarios de prueba, y los indicadores comunes se muestran en la siguiente tabla.

Métricas del sistema MQTT

herramientas de prueba de rendimiento

Las pruebas de rendimiento a gran escala deben poder simular escenarios de alta simultaneidad y alto rendimiento de manera rápida, realista y estable. Al mismo tiempo, debe administrar y mantener muchas máquinas y recursos. Elegir la herramienta de prueba adecuada puede lograr el doble el resultado con la mitad del esfuerzo.

El equipo de EMQX utiliza dos herramientas de prueba de rendimiento, emqtt_bench y XMeter.

emqtt_banco

emqtt_bench es una herramienta de prueba de rendimiento del protocolo MQTT escrita por el equipo de I+D de EMQX basada en Erlang. Una vez completada la instalación, se puede utilizar a través de la línea de comandos.

用法:emqtt_bench pub | sub | conn

En comparación con otras herramientas, la ventaja de emqtt_bench es que es fácil de instalar y usar, y consume menos recursos informáticos. Sin embargo, los escenarios que admite son relativamente limitados y debe combinarse con otras herramientas de monitoreo para probar los datos de los indicadores.

Para conocer los métodos específicos de instalación y uso, consulte https://github.com/emqx/emqtt-bench

Xmetro

emqtt_bench es adecuado para la verificación rápida del rendimiento durante la fase de desarrollo. Si desea realizar pruebas a gran escala o pruebas formales, le recomendamos otra herramienta de prueba de carga y rendimiento más profesional: XMeter .

XMeter es una herramienta de prueba de rendimiento basada en JMeter que ha transformado la arquitectura de JMeter para lograr la capacidad de expansión horizontal completa. Maneje fácilmente grandes cantidades de datos y realice pruebas de alta frecuencia. XMeter no solo hereda las potentes funciones de JMeter, sino que también agrega muchas características nuevas. Durante el proceso de prueba, se proporcionan informes de prueba enriquecidos y en tiempo real, lo que permite a los evaluadores ver indicadores clave de rendimiento de MQTT en cualquier momento, como el rendimiento, el tiempo de respuesta y la tasa de éxito. Al mismo tiempo, XMeter tiene un sistema de monitoreo incorporado, que puede monitorear el consumo de recursos de MQTT Broker en tiempo real.

Además, XMeter proporciona capacidades de gestión de recursos de prueba automatizadas y centralizadas. Las máquinas de prueba (contenedores) se crean automáticamente al comienzo de la prueba y se destruyen al final de la prueba.

Durante toda la fase de prueba, XMeter mostrará los indicadores de rendimiento de MQTT y el uso de recursos informáticos en tiempo real de forma gráfica, como se muestra en las Figuras 1 a 5.

Figura 1 Informe XMeter: información resumida y gráfico de tendencia

Informe XMeter: detalles de datos de prueba (estadísticas por página)

Informe XMeter - Monitoreado bajo prueba

Informe XMeter - Información de prueba

Informe XMeter - Monitoreo de máquinas de prueba

Guía del usuario de XMeter

XMeter está disponible en dos ediciones.

  • Implementación privada local de XMeter. Ideal para organizaciones que necesitan un control total sobre su entorno de prueba y se adhieren a normas estrictas de seguridad y privacidad de datos. Para usar esta versión necesitas:

    • Descargue el complemento mqtt-jmeter de código abierto desarrollado por el equipo XMeter de GitHub: emqx/mqtt-jmeter: complemento MQTT JMeter .

    • Coloque el archivo jar en el directorio JMeter.

    • De acuerdo con el escenario de la aplicación, escriba el script de prueba en JMeter, como se muestra en la Figura 6.

    • Cargue el script en XMeter y comience las pruebas de rendimiento contra MQTT.

      Figura 6 Guión de prueba de JMeter para pruebas de MQTT

  • XMeter Cloud: servicio en la nube de prueba de carga MQTT completamente administrado, fácil de usar:

    • Inicie la prueba de rendimiento de MQTT con un solo clic, sin necesidad de implementar manualmente los recursos de prueba
    • Solo se necesitan 3 pasos para completar la configuración de prueba de MQTT, lo que elimina la carga de escribir scripts de escenarios
    • Los recursos de prueba se crean bajo demanda en la nube y el entorno de prueba está altamente automatizado, lo que ahorra mucho tiempo y costos de mano de obra.

Solo necesita registrar una cuenta de prueba gratuita en nuestro sitio web y luego seguir las instrucciones de este documento para comenzar su viaje con XMeter.

Resumir

En este artículo, discutimos varios escenarios de prueba comunes e indicadores clave utilizados para evaluar el rendimiento de MQTT Broker. Al comprender y aplicar estas técnicas e indicadores de prueba, puede optimizar el rendimiento y la confiabilidad del sistema MQTT y mejorar el nivel general de IoT y la infraestructura de mensajería.

Declaración de derechos de autor: este artículo es original de EMQ, indique la fuente para la reimpresión.

Enlace original: https://www.emqx.com/zh/blog/getting-started-with-mqtt-performance-testing-a-primer-on-scenarios-and-metrics

Supongo que te gusta

Origin blog.csdn.net/emqx_broker/article/details/131510724
Recomendado
Clasificación