Azure IoT 操作 的基準資源設定檔

本參考提供 Azure IoT 操作 在閒置(無活躍工作負載)部署時的基線資源消耗量。 利用這些設定檔來驗證你的硬體是否符合最低需求,並建立資源監控基準。

概觀

Azure IoT 操作 在多個 Kubernetes 命名空間部署多個元件。 總資源佔用取決於兩個因素:MQTT 中介 記憶體配置檔 (控制每個 pod 記憶體分配)以及 broker 基數 (前端複本數量、後端分割區數及冗餘因子,控制部署的 pod 數量)。 基數越高,表示 Pod 越多;而記憶體設定檔越高,則表示每個 Pod 使用更多記憶體。

在閒置的單節點叢集上測量了三種配置(無連接資產、無活躍資料流、近乎零流量)。 這些是 基準數字,不是最大值。 生產工作負載顯著增加消耗:

組態 記憶體設定檔 Cardinality 節點峰值記憶體 Azure IoT 操作 Namespace Peak RSS Pod RSS 峰值總計 Pod 計數
組態 A 微型 1 前端
1 個分割區
冗餘因子 2
~4,979 MiB ~1,298 MiB ~5,409 MiB 55
設定B 2 個前端
2 個分割區
冗餘因子 2
~5,130 MiB ~1,559 MiB ~5,695 MiB 58
組態 C 中等 2 個前端
2 個分割區
冗餘因子 2
~6,088 MiB ~2,407 MiB ~6,564 MiB 58

Note

組態 A 和組態 B 之間的差異來自較高的基數 (更多代理 Pod) 以及不同的記憶體設定檔。 設定 B 與設定 C 的差異僅來自記憶體設定檔(相同基數、相同 Pod 數量)。 請參閱 生產部署範例 以了解載入情境。

命名空間明細

下表顯示三種配置在閒置時依命名空間劃分的峰值 RSS 記憶體:

命名空間 組態 A,極小 (MiB) 組態 B,低 (MiB) 組態 C,中等 (MiB) Description
azure-iot-operations 1,298 1,559 2,407 Azure IoT 操作 核心服務(訊息代理程式、資料流、連接器、可觀察性)
azure-arc 1,964 1,985 1,990 Azure Arc 代理程式和控制器
認證經理 1,351 1,357 1,362 憑證管理
守門人系統 338 338 350 政策執行
azure-extensions-usage-system 279 277 278 計費操作員
arc-workload-identity 90 90 91 工作負載身份識別網路鉤子
azure-secret-store 87 88 87 秘密同步控制器
總計 ~5,409 ~5,695 ~6,564

Note

  • Azure Arc、cert-manager、gatekeeper 及其他基礎設施命名空間無論 broker 配置如何,都會消耗約 3.8-4.1 GB。 這項額外負荷是執行已啟用 Arc 並搭配 Azure IoT 操作 的叢集所需的固定成本。
  • 只有 azure-iot-operations 命名空間會隨記憶體配置檔和基數選擇而擴展,從 ~1.3 GB(微小、最小基數)到 ~2.4 GB(中等、較高基數)。
  • 在尚未將任何工作負載納入考量前,請規劃至少保留6 GB 的記憶體供 Azure IoT 操作 基礎結構在閒置狀態下使用。

MQTT 代理伺服器 Pod 資源使用量

MQTT 代理伺服器是最大的可變元件。 不同組態之間的記憶體差異來自兩方面:記憶體設定檔 (每個 Pod 的分配量) 以及基數 (Pod 的數量)。 下表顯示各 pod 的閒置 RSS 值。 這些數字會隨著流量增加:

Pod 組態 A,極小 (MiB) 組態 B,低 (MiB) 組態 C,中等 (MiB) Notes
aio-broker-frontend-0 二十九 33 169 每個 Pod 的記憶體會隨設定檔縮放
aio-broker-frontend-1 33 169 在設定 A 中不存在(一個前端副本)
aio-broker-backend-1-0 41 66 211 每個 Pod 的記憶體會隨設定檔縮放
aio-broker-backend-1-1 41 65 210 冗餘因子複本
aio-broker-backend-2-0 66 212 配置 A(單一分割區)中不存在
aio-broker-backend-2-1 65 211 配置 A(單一分割區)中不存在
aio-broker-health-manager-0 41 41 42 跨設定檔的常數
aio-broker-operator-0 60 60 56 跨設定檔的常數
aio-broker-diagnostics-probe-0 24 43 43
aio-broker-diagnostics-service-0 49 66 66
aio-broker-authentication-0 24 24 24 跨設定檔的常數
aio-broker-webhook-0 33 35 32 跨設定檔的常數

每個受測設定檔的代理組態

Setting 組態 A (極小) 設定 B(低) 組態 C (中等)
前端複本 1 2 2
後端分割區 1 2 2
後端備援因素 2 2 2
代理 Pod 總數 10 13 13
每個 pod 的閒置前端記憶體 ~29 MiB ~33 MiB ~169 MiB
每個 pod 的閒置後端記憶體 ~41 MiB ~66 MiB ~211 MiB
訊息大小上限 4 MB 16 MB 64 MB

其他 Azure IoT 操作 元件耗用量

這些元件無論記憶體配置或基數如何,閒置資源使用率都保持一致:

組件 RSS 峰值 (MiB) 峰值 CPU(核心) Notes
adr-schema-registry (x2) 每個 ~52 0.002 結構描述檔登錄 Pod
aio-akri-operator-0 ~39 0.001 Akri 裝置發現
aio-akri-adr-service-0 ~30 0.001 Akri Azure Device Registry(ADR)服務
aio-dataflow-dev-0 ~67 0.002 資料流執行階段
AIO-Dataflow-operator-0 ~56 0.001 資料流程運算元
AIO操作員 ~114 0.003 Azure IoT 操作 操作員
aio-可觀測性 (x2) ~每人125 0.005 OpenTelemetry 收集器
aio-observability-operator ~106 0.003 可檢視性運算子
aio-observability-cluster-metrics-agent ~114 0.004 指標代理程式
aio-wasm-graph-controller-0 ~30 0.001 WebAssembly(WASM)圖形控制器

CPU 耗用量

所有測試配置的 CPU 使用率在閒置時均為最小:

組態 Azure IoT 操作 Namespace Peak CPU 叢集總體 CPU 峰值 節點百分比
Config A(超小型) 0.025 個核心 0.099 個核心 1.3%
設定 B(低) 0.044 核心 0.104 核心數 1.3%
設定 C(中等) 0.048 個核心 0.093 個核心 1.2%

閒置時 CPU 使用率幾乎可以忽略不計。 在生產負載下,預期 CPU 消耗會顯著增加,這與訊息吞吐量及設定的前端/後端工作者數量成正比。

硬體尺寸調整指導

根據這些閒置基線測量,以下最低硬體建議適用於單節點部署。 實際需求在正式執行流量底下更高:

記憶體設定檔 最小記憶體(含餘量) 推薦記憶體 用例
8 GB 8–10 GB 流量低,封包小
Low 10 GB 12–16 GB 記憶體有限,封包小
Medium 12 GB 16–32 GB 中等流量與訊息大小
16 GB 32+ GB 高吞吐量,大型訊息

Important

這些建議已將約 4 GB 的固定基礎架構負荷(Azure Arc、cert-manager、gatekeeper)以及 Azure IoT 操作 元件的可變資源占用納入考量。 生產工作負載需要額外的餘裕以進行 MQTT 訊息緩衝、資料流程處理及 OPC UA 連接器活動。