跳到內容
返回官網

EMS Builder 在 AFE-E630 上的效能測試報告

報告版本: v1.3
測試日期: 2026-07-29
報告日期: 2026-07-30
統計口徑: 每場景擷取 2,002 次,忽略首尾樣本,僅統計 sample_no=2~2001 的 2,000 次有效資源樣本
關聯手冊: Edge-EMS Builder 效能測試手冊

✅ AFE-E630 推薦執行場景:S3.5
在本輪 6 個實測場景中,S3.5 的負載能力、任務時延與整機資源餘量最均衡。推薦採用變化儲存(數值不變時最遲 10 秒儲存),並將以下負載作為目前已驗證的推薦執行設定。
📡
5,000 點/秒
資料擷取設定量
🧮
30 個
聚合運算
⚡
90 次/秒
Trigger 目標
☁️
20 次/秒
MQTT 任務目標
🤝
10 次/秒
協作任務
💾
變化儲存
最遲 10 秒儲存
🧠
50.16% / 71.09%
整機 CPU 平均 / P95
🗄️
40.49% / 41.41%
整機記憶體平均 / P95
⏱️
56 ms
Trigger P95
📨
77 ms
MQTT P95

每次 Trigger 執行代表 1 次裝置控制、1 次本機告警與 MQTT 告警,以及 1 次聚合資料寫入。Edge-EMS Builder 會根據裝置記憶體為 PostgreSQL 分配資源,因此不同裝置、資料庫規模及快取狀態下的記憶體佔用可能存在明顯差異。

推薦 AFE-E630 按 S3.5 場景執行:5,000 點/秒、30 個聚合運算、90 次 Trigger/秒、20 次 MQTT/秒、10 次協作任務/秒,並啟用 10 秒變化儲存。

S3.5 實測 Trigger 為 89.97 次/秒、MQTT 為 19.98 次/秒;Trigger / MQTT P95 分別為 56 ms 和 77 ms。整機 CPU P95 為 71.09%,整機實際記憶體 P95 為 41.41%,且本場景沒有出現取樣超時。

面向長期生產執行,建議在 S3.5 已測負載上保留約 20% 工程餘量,初始容量可按不高於約 4,000 點/秒、72 次 Trigger/秒、16 次 MQTT/秒、8 次協作任務/秒規劃。該建議是由實測設定折算的工程值,並非單獨執行過的測試場景;正式上線前仍應使用專案實際指令碼、訊息大小和資料庫歷史量複測。

圖示 場景 結論
🟢 S1 基準場景通過,資源和任務時延均有充足餘量。
🟢 S2 通過,即時儲存下 2,000 點/秒執行平穩;出現 1 次取樣超時。
🟢 S2.5 通過,變化儲存相較 S2 明顯降低 CPU 壓力,且沒有取樣超時。
🟡 S3 任務指標通過,但整機 CPU P95 為 81.06%,接近持續執行邊界,並出現 2 次取樣超時。
🟢 S3.5 綜合表現最佳,作為 AFE-E630 目前推薦場景。
🔴 S6 僅適合作為短時壓力預檢;整機 CPU P95 為 94.02%,MQTT 處理量低於 99% 推薦線,並出現 11 次取樣超時。
  • 本輪共測試 S1、S2、S2.5、S3、S3.5、S6 六個場景,其他場景不納入資料表、比較和結論。
  • S3.5 在 5,000 點/秒設定負載下,Trigger 達成率為 99.97%,MQTT 達成率為 99.90%;Trigger / MQTT P95 分別為 56 ms 和 77 ms。
  • S3 與 S3.5 的業務負載相同。啟用變化儲存後,S3.5 的整機 CPU 平均值由 57.95% 降至 50.16%,P95 由 81.06% 降至 71.09%,更適合持續執行。
  • S6 的 Trigger 達成率為 99.49%,但 MQTT 達成率為 98.73%;整機 CPU P95 為 94.02%,峰值達到 100%,不建議作為持續生產設定。
  • 所有場景的 Trigger 總體 P99 均低於 200 ms,但仍出現約 10~12 秒的單次長尾。S6 的 MQTT P99 為 236.62 ms,已超過 200 ms。
  • 本輪每個場景僅保留 2,000 秒(約 33 分 20 秒)有效樣本,適合效能對比,但不能替代 72 小時穩定性測試。

監控採用次數計數。每個場景的資源原始資料均包含 sample_no=1~2002:

忽略:sample_no = 1
統計:sample_no = 2~2001,共 2,000 次
忽略:sample_no = 2002

剔除首尾樣本可避免開始和結束時不足完整一秒的資料進入統計。Trigger 與 MQTT 總體結果均以 2,000 秒為分母;即使某一秒沒有任務記錄,該秒仍計入平均處理量,避免只統計有資料秒而高估吞吐。

以下 5 個服務合併視為一個完整 Edge-EMS Builder:

服務 作用
cb_core 資料擷取與核心通訊
cb_nginx CommBridge Web / 反向代理
cb_backend CommBridge 後端
ems_backend EMS Builder 計算、策略與業務邏輯
ems_postgresql EMS Builder 資料儲存

每個 sample_no 先合計 5 個服務,再從 2,000 個合計值計算平均、P95、P99 和峰值,不將各服務在不同時刻出現的獨立峰值直接相加。

  • 五服務 CPU 原始值採用單核等效百分比;AFE-E630 為 4 核裝置,因此“Edge-EMS Builder 4 核等效 CPU”= 五服務 CPU 合計 ÷ 4。
  • “整機 CPU”使用工作簿中的 _system_total,表示全部 CPU 容量歸一化後的 0~100% 佔用,是判斷裝置容量的主要指標。
  • “Edge-EMS Builder 歸屬記憶體”是五個服務 cgroup 歸屬記憶體的合計;共享頁和快取可能被重複歸屬,因此該值可高於整機實際已用記憶體,不能直接除以實體記憶體作為容量佔用率。
  • “整機實際記憶體”按 MemTotal - MemAvailable 計算,是判斷實體記憶體餘量的主要指標。
  • Trigger / MQTT 的平均值和 P50、P95、P99 基於有效區間內的全部任務記錄,不是每秒平均值的分位數。
  • 各工作簿均通過“彙總前測試負載已關閉”檢查,Trigger、MQTT 與 CommBridge 均在彙總前關閉並等待 30 秒。
項目 設定
裝置型號 AFE-E630
CPU Arm Cortex-A55,4 核
記憶體 3.81 GB DDR4
作業系統 JelinaOS,基於 Debian 11
儲存 eMMC
軟體版本 CommBridge-rc-2026-07-08T17-52-07;EMS Builder v1.2;PostgreSQL v18.3
網路 區域網路;MQTT / TCP
監控取樣 每秒擷取 1 次;每場景 2,002 次,統計中間 2,000 次
測試資料來源 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
場景 資料擷取 聚合運算 普通 Trigger 100 ms Trigger Trigger 目標 MQTT 目標 協作任務 儲存策略
S1 500 點/秒 10 10 次/秒 0 10 次/秒 5 次/秒 0 次/秒 即時
S2 2,000 點/秒 20 20 次/秒 2 40 次/秒 10 次/秒 2 次/秒 即時
S2.5 2,000 點/秒 20 20 次/秒 2 40 次/秒 10 次/秒 2 次/秒 變化儲存(10 秒)
S3 5,000 點/秒 30 50 次/秒 4 90 次/秒 20 次/秒 10 次/秒 即時
S3.5 5,000 點/秒 30 50 次/秒 4 90 次/秒 20 次/秒 10 次/秒 變化儲存(10 秒)
S6 5,000 點/秒 20 50 次/秒 10 150 次/秒 30 次/秒 15 次/秒 即時

“資料擷取”是場景設定負載。目前工作簿未提供逐點採整合功數,不能將設定值表述為已經獨立驗證的成功入庫吞吐量。

場景 有效統計區間 有效時長
S1 2026-07-29 17:18:09 ~ 17:51:29 2,000 秒
S2 2026-07-29 17:54:29 ~ 18:27:49 2,000 秒
S2.5 2026-07-29 18:31:54 ~ 19:05:14 2,000 秒
S3 2026-07-29 19:09:20 ~ 19:42:40 2,000 秒
S3.5 2026-07-29 19:47:06 ~ 20:20:26 2,000 秒
S6 2026-07-29 20:24:47 ~ 20:58:07 2,000 秒

以上時間均為 UTC+8。

7.1 EMS Builder 五服務合計(4 核等效)

Section titled “7.1 EMS Builder 五服務合計(4 核等效)”
狀態 場景 平均 P95 P99 峰值
🟢 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%

S6 的 Edge-EMS Builder 峰值 208.59% 是單個取樣視窗的異常值,對應五服務合計 CPU 時間超過 4 核常規容量。結合該場景 11 次取樣超時判斷,可能存在取樣視窗跨期或突發排程,不將其視為可持續資源佔用。

7.2 整機 CPU(全部 CPU 容量歸一化)

Section titled “7.2 整機 CPU(全部 CPU 容量歸一化)”
狀態 場景 平均 P95 P99 峰值
🟢 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%

整機 CPU 是本報告判斷裝置 CPU 容量的主要依據。S3.5 的 P95 比 S3 低 9.97 個百分點;S6 的 P95 已超過 90%,不具備足夠的持續執行餘量。

狀態 場景 EMS Builder 歸屬記憶體平均 EMS Builder 歸屬記憶體 P95 整機實際記憶體平均 整機實際記憶體 P95 整機實際記憶體峰值
🟢 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%)

五服務歸屬記憶體包含 cgroup 歸屬的共享頁與快取,不等於實體記憶體淨佔用。整機實際記憶體更能反映裝置剩餘容量,因此場景判定使用整機實際記憶體。不同場景的資料庫初始狀態和快取熱度會影響結果,不應只根據點位數量推斷記憶體變化。

平均處理量以完整 2,000 秒有效區間為分母;達成率依據任務總數除以目標總數計算,避免工作簿顯示值四捨五入造成偏差。

狀態 場景 Trigger 總數 Trigger 平均 / 目標 Trigger 達成率 MQTT 總數 MQTT 平均 / 目標 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%

本報告以 99% 作為推薦執行場景的處理量參考線。S6 的 MQTT 低於該參考線,且高 CPU、時延上升與取樣超時同時出現,表明該負載已進入壓力區。

以下分位數基於有效區間內全部 Trigger 任務記錄,單位為毫秒。

狀態 場景 平均 P50 P95 P99 單次最大
🟢 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

常態分位數均較低,但各場景均存在約 10~12 秒的極端單次長尾。長尾不會明顯改變 P99,卻可能影響個別控制或告警任務,仍需專項排查。

以下分位數基於有效區間內全部 MQTT 任務記錄,單位為毫秒。

狀態 場景 平均 P50 P95 P99 單次最大
🟢 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
場景 判定 主要依據
S1 通過 基準負載下整機 CPU P95 為 38.67%,記憶體 P95 為 41.97%,任務處理量達到目標。
S2 通過 Trigger 與 MQTT 達成率均接近 100%,資源保有充足餘量;需留意 1 次取樣超時。
S2.5 通過 處理量達到目標;變化儲存下整機 CPU 平均值和 P95 均明顯低於 S2。
S3 有條件通過 處理量和任務時延達標,但整機 CPU P95 為 81.06%,出現 2 次取樣超時,持續執行餘量偏小。
S3.5 推薦 在 5,000 點/秒負載下,Trigger / MQTT P95 均低於 100 ms,整機 CPU P95 為 71.09%,實際記憶體 P95 為 41.41%,且無取樣超時。
S6 不建議持續執行 MQTT 達成率為 98.73%、P99 為 236.62 ms,整機 CPU P95 為 94.02%,並出現 11 次取樣超時。
  • 資料擷取設定量:5,000 點/秒;
  • 聚合運算:30 個;
  • 普通 Trigger:50 次/秒;
  • 100 ms Trigger:4 個,即 40 次/秒;
  • Trigger 合計:90 次/秒;
  • MQTT:20 次/秒;
  • 協作任務:10 次/秒;
  • Trigger 任務記錄:儲存;
  • 資料儲存:變化儲存,數值不變時最遲 10 秒儲存一次。
  • 長期執行建議在上述已測設定基礎上保留約 20% 工程餘量,並使用實際 Lua 指令碼、訊息體大小和資料庫歷史量進行上線前複測。
  • 建議對整機 CPU 設定 80% 預警,對整機記憶體設定 70% 預警、80% 嚴重告警,並持續觀察 PostgreSQL 快取和資料庫增長。
  • 需要即時儲存時可參考 S3 的結果,但該場景整機 CPU P95 已超過 80%;若不是業務強制要求,優先採用 S3.5 的變化儲存策略。
  • S6 僅用於短時壓力、限流或過載保護驗證,不建議作為 E630 的持續生產負載。
  1. S2 出現 1 次取樣超時,S3 出現 2 次,S6 出現 11 次;S1、S2.5 和 S3.5 未發現取樣超時。
  2. 完整執行 72 小時穩定性測試,記錄行程重新啟動、OOM、錯誤記錄、記憶體斜率和資料庫增長。
  3. 為擷取點、Trigger、MQTT、協作任務分別增加成功、失敗、超時和丟棄計數。
  4. 補充磁碟吞吐、I/O wait、PostgreSQL WAL / checkpoint、連線池和佇列深度。
  5. 對 Trigger 的 10~12 秒單次長尾關聯任務 ID、Lua 指令碼、SQL、GC、I/O 和系統記錄。
  6. 記錄每個場景開始前的資料庫大小、PostgreSQL 設定和快取熱度,增強跨場景記憶體結果的可比性。
  • 點位數是測試設定量,不是逐點成功計數;現有資料無法獨立證明每個擷取點均成功寫入。
  • 工作簿沒有業務錯誤率、任務結果狀態和正確率欄位,處理量達標不等於業務正確率為 100%。
  • 本輪各場景均為約 33 分 20 秒的短時測試,適合比較效能,不替代長期穩定性測試。
  • S3.5 是目前批次綜合指標最優的已測設定;20% 工程餘量是容量規劃建議,不是獨立實測結論。

其他型號請參閱:AFE-E620 測試報告。