Ir al contenido
JelinaJelina DocumentationDocumentación técnica
Volver al sitio oficial

Informe de rendimiento de EMS Builder en AFE-E630

Versión del informe: v1.3
Fecha de prueba: 2026-07-29
Fecha del informe: 2026-07-30
Metodología: 2.002 muestras por escenario, excluyendo la primera y la última; solo se analizan las 2.000 muestras válidas de recursos con sample_no=2~2001.
Manual relacionado: Pruebas de rendimiento de Edge-EMS Builder

✅ Escenario recomendado para AFE-E630: S3.5
Entre los seis escenarios medidos, S3.5 ofrece el mejor equilibrio entre capacidad de carga, latencia y margen de recursos del equipo. Se recomienda almacenamiento por cambios, guardando como máximo cada 10 segundos si el valor permanece igual, con la siguiente configuración validada.
📡
5.000 puntos/s
Carga de adquisición configurada
🧮
30
Agregaciones
⚡
90/s
Objetivo Trigger
☁️
20/s
Objetivo de tareas MQTT
🤝
10/s
Tareas de coordinación
💾
Por cambios
Guardado cada 10 s como máximo
🧠
50,16% / 71,09%
CPU del equipo: media / P95
🗄️
40,49% / 41,41%
Memoria del equipo: media / P95
⏱️
56 ms
Trigger P95
📨
77 ms
MQTT P95

Cada ejecución de Trigger representa una operación de control de dispositivo, una alarma local y una alarma MQTT, y una escritura agregada. Edge-EMS Builder asigna recursos a PostgreSQL según la memoria del equipo; el consumo puede variar considerablemente entre dispositivos, tamaños de base de datos y estados de caché.

Se recomienda ejecutar AFE-E630 con S3.5: 5.000 puntos/s, 30 agregaciones, 90 Trigger/s, 20 tareas MQTT/s y 10 tareas de coordinación/s, con almacenamiento por cambios de 10 segundos.

S3.5 procesó 89,97 Trigger/s y 19,98 MQTT/s. Sus P95 fueron 56 ms y 77 ms. La CPU P95 del equipo fue 71,09% y la memoria real P95, 41,41%, sin tiempos de espera de muestreo agotados.

Para producción prolongada, reserva aproximadamente un 20% de margen de ingeniería respecto a S3.5. La planificación inicial puede limitarse a aproximadamente 4.000 puntos/s, 72 Trigger/s, 16 MQTT/s y 8 tareas de coordinación/s. Es una recomendación derivada de la configuración medida, no un escenario ensayado por separado. Repite las pruebas con scripts, tamaños de mensaje y volumen histórico reales antes de producción.

Icono Escenario Conclusión
🟢 S1 Escenario base superado, con margen suficiente de recursos y latencia.
🟢 S2 Superado; funcionamiento estable con 2.000 puntos/s y almacenamiento en tiempo real; un tiempo de espera de muestreo agotado.
🟢 S2.5 Superado; el almacenamiento por cambios reduce claramente la carga de CPU frente a S2, sin tiempos de espera de muestreo agotados.
🟡 S3 Indicadores de tareas superados, pero CPU P95 de 81,06%, cerca del límite de funcionamiento continuo; dos tiempos de espera de muestreo agotados.
🟢 S3.5 Mejor resultado global; escenario recomendado actualmente para AFE-E630.
🔴 S6 Solo adecuado como comprobación breve de estrés: CPU P95 de 94,02%, volumen MQTT por debajo del 99% recomendado y 11 tiempos de espera de muestreo agotados.
  • Se probaron S1, S2, S2.5, S3, S3.5 y S6. Los demás escenarios no se incluyen en tablas, comparaciones ni conclusiones.
  • Con 5.000 puntos/s configurados, S3.5 alcanzó 99,97% en Trigger y 99,90% en MQTT; los P95 fueron 56 ms y 77 ms.
  • S3 y S3.5 tienen la misma carga funcional. El almacenamiento por cambios redujo la CPU media de 57,95% a 50,16% y P95 de 81,06% a 71,09%, favoreciendo el funcionamiento continuo.
  • S6 alcanzó 99,49% en Trigger, pero 98,73% en MQTT. La CPU P95 fue 94,02% y el máximo 100%; no se recomienda como configuración continua de producción.
  • Trigger P99 quedó por debajo de 200 ms en todos los escenarios, aunque hubo ejecuciones individuales de unos 10–12 segundos. MQTT P99 en S6 fue 236,62 ms, superior a 200 ms.
  • Cada escenario conserva únicamente 2.000 segundos válidos, unos 33 minutos y 20 segundos. Sirven para comparar rendimiento, no para sustituir 72 horas de estabilidad.

La supervisión utiliza un recuento fijo. Los datos originales de recursos de cada escenario incluyen sample_no=1~2002:

Excluir: sample_no = 1
Analizar: sample_no = 2–2001, 2,000 muestras
Excluir: sample_no = 2002

Excluir los extremos evita incluir segundos incompletos al iniciar y terminar. Los resultados globales de Trigger y MQTT utilizan 2.000 segundos como denominador. Los segundos sin tareas también cuentan en la media, evitando sobreestimar el rendimiento al considerar solo los que tienen registros.

Estos cinco servicios se consideran conjuntamente un Edge-EMS Builder completo:

Servicio Función
cb_core Adquisición de datos y comunicaciones principales
cb_nginx Web de CommBridge / proxy inverso
cb_backend Backend de CommBridge
ems_backend Cálculos, estrategias y lógica de negocio de EMS Builder
ems_postgresql Almacenamiento de datos de EMS Builder

Primero se suman los cinco servicios para cada sample_no. Después se calculan media, P95, P99 y máximo sobre los 2.000 totales. No se suman máximos independientes ocurridos en momentos distintos.

  • La CPU original de los cinco servicios se expresa como porcentaje equivalente de un núcleo. AFE-E630 tiene cuatro núcleos: «CPU equivalente de EMS Builder sobre cuatro núcleos» = suma de los cinco servicios ÷ 4.
  • «CPU del equipo» utiliza _system_total del libro, normalizado entre 0 y 100% de la capacidad total. Es el principal indicador de capacidad del dispositivo.
  • «Memoria atribuida a Edge-EMS Builder» suma la memoria atribuida por cgroup a los cinco servicios. Páginas compartidas y cachés pueden contabilizarse varias veces; puede superar la memoria real del equipo y no debe dividirse directamente por la memoria física para expresar ocupación.
  • «Memoria real del equipo» se calcula como MemTotal - MemAvailable y es la referencia principal para evaluar el margen de memoria física.
  • Las medias y P50, P95 y P99 de Trigger / MQTT se calculan sobre todas las tareas del intervalo válido, no sobre medias por segundo.
  • Todos los libros superaron la comprobación de cierre de carga antes del resumen: Trigger, MQTT y CommBridge se detuvieron y se esperaron 30 segundos antes de resumir.
Elemento Configuración
Modelo de equipo AFE-E630
CPU Arm Cortex-A55, 4 núcleos
Memoria 3,81 GB DDR4
Sistema operativo JelinaOS, basado en Debian 11
Almacenamiento eMMC
Versión de software CommBridge-rc-2026-07-08T17-52-07;EMS Builder v1.2;PostgreSQL v18.3
Red Red local; MQTT / TCP
Muestreo de supervisión Una muestra por segundo; 2.002 por escenario, analizando las 2.000 intermedias
Fuentes de datos de prueba perf_S1_20260729_171807.xlsx、perf_S2_20260729_175426.xlsx、perf_S2.5_20260729_183152.xlsx、perf_S3_20260729_190918.xlsx、perf_S3.5_20260729_194703.xlsx、perf_S6_20260729_202445.xlsx
Escenario Adquisición Agregaciones Trigger normales 100 ms Trigger Objetivo Trigger Objetivo MQTT Tareas de coordinación Política de almacenamiento
S1 500 puntos/s 10 10/s 0 10/s 5/s 0/s Tiempo real
S2 2.000 puntos/s 20 20/s 2 40/s 10/s 2/s Tiempo real
S2.5 2.000 puntos/s 20 20/s 2 40/s 10/s 2/s Por cambios (10 s)
S3 5.000 puntos/s 30 50/s 4 90/s 20/s 10/s Tiempo real
S3.5 5.000 puntos/s 30 50/s 4 90/s 20/s 10/s Por cambios (10 s)
S6 5.000 puntos/s 20 50/s 10 150/s 30/s 15/s Tiempo real

La adquisición representa la carga configurada. Los libros no proporcionan recuentos de éxito por punto; no puede presentarse como un caudal de inserción correcta en base de datos validado independientemente.

Escenario Intervalo estadístico válido Duración válida
S1 2026-07-29 17:18:09 ~ 17:51:29 2.000 s
S2 2026-07-29 17:54:29 ~ 18:27:49 2.000 s
S2.5 2026-07-29 18:31:54 ~ 19:05:14 2.000 s
S3 2026-07-29 19:09:20 ~ 19:42:40 2.000 s
S3.5 2026-07-29 19:47:06 ~ 20:20:26 2.000 s
S6 2026-07-29 20:24:47 ~ 20:58:07 2.000 s

Todos los horarios están en UTC+8.

7.1 Total de los cinco servicios de EMS Builder, equivalente a cuatro núcleos

Sección titulada «7.1 Total de los cinco servicios de EMS Builder, equivalente a cuatro núcleos»
Estado Escenario Media P95 P99 Máximo
🟢 S1 13,48% 23,97% 41,50% 62,53%
🟢 S2 28,47% 48,33% 56,36% 67,17%
🟢 S2.5 26,11% 38,36% 49,96% 65,76%
🟡 S3 50,58% 72,31% 78,55% 95,43%
🟢 S3.5 43,50% 61,27% 70,93% 86,75%
🔴 S6 65,95% 85,87% 91,61% 208,59%

El máximo de EMS Builder de 208,59% en S6 es una anomalía de una ventana de muestreo: el tiempo de CPU acumulado de los cinco servicios supera la capacidad habitual de cuatro núcleos. Junto con los 11 tiempos de espera de muestreo agotados, puede indicar ventanas que abarcan periodos distintos o ráfagas de planificación. No se considera un consumo sostenible.

7.2 CPU del equipo, normalizada a toda la capacidad

Sección titulada «7.2 CPU del equipo, normalizada a toda la capacidad»
Estado Escenario Media P95 P99 Máximo
🟢 S1 20,22% 38,67% 48,57% 67,70%
🟢 S2 35,88% 57,58% 66,41% 82,42%
🟢 S2.5 32,72% 45,28% 57,03% 75,06%
🟡 S3 57,95% 81,06% 89,16% 98,64%
🟢 S3.5 50,16% 71,09% 79,84% 96,98%
🔴 S6 73,86% 94,02% 97,95% 100,00%

La CPU del equipo es la referencia principal de capacidad. S3.5 tiene un P95 9,97 puntos porcentuales inferior a S3. S6 supera 90% de P95 y carece de margen suficiente para funcionar continuamente.

Estado Escenario Memoria atribuida a EMS Builder: media Memoria atribuida a EMS Builder: P95 Memoria real del equipo: media Memoria real del equipo: P95 Memoria real del equipo: máximo
🟢 S1 2.666,77 MB 2.704,44 MB 1.550,46 MB(39,74%) 1.637,29 MB(41,97%) 1.694,09 MB(43,42%)
🟢 S2 2.805,86 MB 2.895,39 MB 1.579,23 MB(40,48%) 1.675,40 MB(42,94%) 1.736,57 MB(44,51%)
🟢 S2.5 2.881,41 MB 2.933,45 MB 1.507,67 MB(38,64%) 1.596,94 MB(40,93%) 1.667,61 MB(42,74%)
🟡 S3 3.067,36 MB 3.119,55 MB 1.591,41 MB(40,79%) 1.684,10 MB(43,17%) 1.759,92 MB(45,11%)
🟢 S3.5 3.059,29 MB 3.106,37 MB 1.579,83 MB(40,49%) 1.615,76 MB(41,41%) 1.702,34 MB(43,63%)
🔴 S6 3.071,13 MB 3.123,09 MB 1.636,22 MB(41,94%) 1.721,25 MB(44,12%) 1.791,94 MB(45,93%)

La memoria atribuida a los cinco servicios incluye páginas compartidas y cachés atribuidas por cgroup; no equivale al consumo físico neto. La memoria real refleja mejor el margen y se utiliza para evaluar escenarios. El estado inicial de la base de datos y el calentamiento de cachés afectan al resultado; no deduzcas los cambios de memoria únicamente del número de puntos.

Las medias utilizan los 2.000 segundos válidos completos. El cumplimiento se calcula dividiendo el total de tareas por el total objetivo, evitando desviaciones por redondeos de los valores mostrados en el libro.

Estado Escenario Total Trigger Trigger: media / objetivo Cumplimiento Trigger Total MQTT MQTT: media / objetivo Cumplimiento MQTT
🟢 S1 20.000 10,00 / 10 100,00% 10.000 5,00 / 5 100,00%
🟢 S2 79.990 40,00 / 40 99,99% 19.995 10,00 / 10 99,98%
🟢 S2.5 79.990 40,00 / 40 99,99% 20.000 10,00 / 10 100,00%
🟡 S3 179.788 89,89 / 90 99,88% 39.800 19,90 / 20 99,50%
🟢 S3.5 179.943 89,97 / 90 99,97% 39.960 19,98 / 20 99,90%
🔴 S6 298.469 149,23 / 150 99,49% 59.239 29,62 / 30 98,73%

La referencia para recomendar un escenario es 99%. MQTT en S6 queda por debajo y coincide con CPU elevada, más latencia y tiempos de espera de muestreo agotados, lo que indica una carga en zona de estrés.

Los percentiles siguientes utilizan todos los registros Trigger del intervalo válido. Unidad: milisegundos.

Estado Escenario Media P50 P95 P99 Máximo individual
🟢 S1 47,86 19 32 47 10.160
🟢 S2 23,65 11 30 53 10.938
🟢 S2.5 26,06 17 46 69 10.938
🟡 S3 37,69 14 55 99 10.993
🟢 S3.5 29,88 15 56 88 10.994
🔴 S6 44,06 17 87 162 11.985

Los percentiles habituales son bajos, pero todos los escenarios presentan ejecuciones extremas de unos 10–12 segundos. Estos casos apenas alteran P99, aunque pueden afectar a controles o alarmas individuales y requieren investigación específica.

Los percentiles siguientes utilizan todos los registros MQTT del intervalo válido. Unidad: milisegundos.

Estado Escenario Media P50 P95 P99 Máximo individual
🟢 S1 57,90 57 65 73 122
🟢 S2 57,83 57 67 76 115
🟢 S2.5 57,13 56 65 74 330
🟡 S3 62,31 58 89 146 340
🟢 S3.5 58,60 57 77 98 220
🔴 S6 74,79 64 134 236,62 920
Escenario Evaluación Fundamento principal
S1 Superado Con carga base, CPU P95 de 38,67%, memoria P95 de 41,97% y volumen de tareas conforme al objetivo.
S2 Superado Trigger y MQTT se acercan al 100%, con amplio margen de recursos; revisar un tiempo de espera de muestreo agotado.
S2.5 Superado Volumen conforme al objetivo; con almacenamiento por cambios, CPU media y P95 claramente inferiores a S2.
S3 Superado con condiciones Volumen y latencia conformes, pero CPU P95 de 81,06% y dos tiempos de espera de muestreo agotados; margen reducido para funcionamiento continuo.
S3.5 Recomendado Con 5.000 puntos/s, Trigger / MQTT P95 inferiores a 100 ms, CPU P95 de 71,09%, memoria real P95 de 41,41% y sin tiempos de espera de muestreo agotados.
S6 No recomendado para funcionamiento continuo MQTT alcanza 98,73%, con P99 de 236,62 ms; CPU P95 de 94,02% y 11 tiempos de espera de muestreo agotados.

13. Recomendaciones de capacidad y despliegue

Sección titulada «13. Recomendaciones de capacidad y despliegue»
  • Adquisición configurada: 5.000 puntos/s.
  • Agregaciones: 30.
  • Trigger normales: 50/s.
  • Trigger de 100 ms: 4, equivalentes a 40/s.
  • Total Trigger: 90/s.
  • MQTT: 20/s.
  • Coordinación: 10 tareas/s.
  • Registros de tareas Trigger: guardados.
  • Almacenamiento: por cambios, con guardado como máximo cada 10 segundos si el valor no cambia.
  • Reserva aproximadamente un 20% de margen sobre la configuración medida y repite las pruebas con scripts Lua, tamaños de mensaje y volumen histórico reales antes de producción.
  • Configura advertencia de CPU del equipo al 80%, advertencia de memoria al 70% y alarma grave al 80%. Supervisa las cachés PostgreSQL y el crecimiento de la base de datos.
  • Si necesitas almacenamiento en tiempo real, consulta S3, cuyo CPU P95 ya supera 80%. Si el negocio no lo exige, prioriza el almacenamiento por cambios de S3.5.
  • Utiliza S6 solo para pruebas breves de estrés, limitación o protección ante sobrecarga, no como carga continua de producción en E630.
  1. Hubo un tiempo de espera de muestreo agotado en S2, dos en S3 y once en S6. No se detectaron en S1, S2.5 ni S3.5.
  2. Ejecuta las 72 horas completas de estabilidad y registra reinicios, OOM, errores, pendiente de memoria y crecimiento de base de datos.
  3. Añade contadores de éxitos, fallos, tiempos de espera agotados y descartes para puntos, Trigger, MQTT y coordinación.
  4. Completa medidas de rendimiento de disco, I/O wait, WAL/checkpoint de PostgreSQL, grupos de conexiones y profundidad de colas.
  5. Correlaciona los casos Trigger de 10–12 segundos con ID de tarea, scripts Lua, SQL, GC, E/S y registros del sistema.
  6. Registra tamaño inicial de base de datos, configuración PostgreSQL y calentamiento de cachés para mejorar la comparabilidad de memoria entre escenarios.
  • El número de puntos es una carga configurada, no un recuento de éxitos por punto; los datos no demuestran de forma independiente que todos se escribieran correctamente.
  • Los libros no incluyen tasa de errores de negocio, estado de resultados ni tasa de corrección. Alcanzar el volumen no implica 100% de corrección funcional.
  • Son pruebas cortas de unos 33 minutos y 20 segundos por escenario, adecuadas para comparar rendimiento, no para sustituir estabilidad prolongada.
  • S3.5 ofrece los mejores indicadores globales del lote. El margen del 20% es una recomendación de planificación, no una conclusión medida por separado.

Otro modelo: Informe AFE-E620.