Red de conocimiento informático - Problemas con los teléfonos móviles - Prueba de esfuerzo de la puerta de enlace SpringBoot+Netty JT808

Prueba de esfuerzo de la puerta de enlace SpringBoot+Netty JT808

En el artículo anterior, presentamos cómo usar SpringBoot+Netty para desarrollar la puerta de enlace JT808. Este artículo realizará una prueba de esfuerzo de la puerta de enlace JT808.

Hemos visto algunos artículos en Internet sobre puertas de enlace estándar de nivel ministerial. No proporcionan configuración del servidor, velocidad de transmisión ni informes de prueba. Es completamente un truco. ., todo habla con datos.

Utilice la herramienta de prueba de estrés del terminal simulada La herramienta de prueba de estrés enviará cinco tipos de mensajes: registro del terminal, cierre de sesión del terminal, autenticación del terminal, latido e informe de ubicación. La puerta de enlace jt808 recibe y analiza información de ubicación y la envía a RabbitMQ. gnss-web se suscribe a los mensajes de ubicación de RabbitMQ y cuenta la cantidad de ubicaciones recibidas. Compare si el número total de ubicaciones enviadas por la herramienta de prueba de estrés y el número de ubicaciones recibidas por la red son consistentes.

Dado que los requisitos de las pruebas de estrés del Ministerio de Transporte no son altos, no realizamos pruebas de estrés de acuerdo con los requisitos del Ministerio de Transporte. Durante la prueba, aumentamos la tasa de envío en más de 2. veces para ver cómo el sistema puede soportar el estrés.

Servidor: Tencent Cloud y Alibaba Cloud Linux

Configuración: CPU: 4 núcleos Memoria: 8G Ancho de banda: 5M

Entorno: JDK13, RabbitMQ, Redis, entre otros que RabbitMQ y Redis se crean utilizando contenedores Docker

Programa de prueba: gateway jt808-server, servidor web backend, web backend gnss-web

Serialización de mensajes: ProtoBuf

Simule la cantidad de puntos finales que se probarán: 3333, 10000, 12000

Proceso: inicie Redis y RabbitMQ en el contenedor acoplable, luego inicie gnss-web, cargue 20000 puntos finales en el caché de Redis y luego inicie jt808-servidor.

Rendimiento de RabbitMQ:

Información de carga del servidor:

Ubicaciones web recibidas: 2523083

Hilo de puerta de enlace JT808 comprobado, no encontrado hilo de bloqueo BLOCK .

Resumen: tiempo de prueba de esfuerzo: 40 minutos, número de ubicaciones: 1: 40 minutos, número de ubicaciones: 10 millones, rendimiento de RabbitMQ: 5000/s, uso de CPU: 75-80%, ancho de banda: 3,5 M:

La CPU ha disminuido mucho en comparación con antes:

El hilo de la puerta de enlace JT808 es bueno y no se ha encontrado ningún hilo de bloqueo BLOCK para ejecutar

Después de la recolección de basura de GC, la memoria cae repentinamente. El verde representa el estado antes de la instantánea. Si la barra de progreso se muestra en rojo, indica una pérdida de memoria. Aquí todo está verde, no hay pérdidas de memoria: