Originalresursprofiler för Azure IoT Operations

Den här referensen ger uppmätt baslinjeresursförbrukning för Azure IoT Operations distributioner vid inaktivitet (inga aktiva arbetsbelastningar). Använd dessa profiler för att verifiera att maskinvaran uppfyller minimikraven och för att upprätta baslinjer för resursövervakning.

Overview

Azure IoT Operations distribuerar flera komponenter i flera Kubernetes-namnområden. Det totala resursavtrycket beror på två faktorer: MQTT-koordinatorminnesprofilen (som styr minnesallokering per podd) och kardinaliteten för koordinatorn (antal klientdelsrepliker, serverdelspartitioner och redundansfaktor, som styr hur många poddar som distribueras). Högre kardinalitet innebär fler poddar, och en högre minnesprofil innebär att varje podd använder mer minne.

Tre konfigurationer mättes på kluster med en nod vid inaktivitet (inga anslutna tillgångar, inga aktiva dataflöden, nästan noll trafik). Det här är baslinjenummer, inte maxvärden. Produktionsarbetsbelastningar ökar förbrukningen avsevärt:

Konfiguration Minnesprofil Cardinality Maximalt minne för nod Azure IoT Operations RSS-topp för namnområdet Total högsta RSS för podd Antal poddar
Konfiguration A Pytteliten 1 klientdel
1 partition
redundansfaktor 2
~4 979 MiB ~1 298 MiB ~5 409 MiB 55
Konfiguration B Låg 2 frontendar
2 partitioner
redundansfaktor 2
~5 130 MiB ~1 559 MiB ~5 695 MiB 58
Konfiguration C Medium 2 frontendar
2 partitioner
redundansfaktor 2
~6 088 MiB ~2 407 MiB ~6 564 MiB 58

Note

Skillnaden mellan Config A och Config B beror både på högre kardinalitet (fler broker-poddar) och en annan minnesprofil. Skillnaden mellan Config B och Config C är enbart från minnesprofilen (samma kardinalitet, samma poddantal). Se Exempel på produktionsdistribution för inlästa scenarier.

Namnområdesuppdelning

Följande tabell visar högsta RSS-minne per namnrymd för alla tre konfigurationer vid inaktivitet:

Namespace Konfiguration A, Liten (MiB) Konfiguration B, låg (MiB) Konfiguration C, Medel (MiB) Description
azure-iot-operations 1,298 1,559 2,407 Azure IoT Operations kärntjänster (broker, dataflöden, anslutningar, observabilitet)
azure-arc 1,964 1,985 1,990 Azure Arc agenter och kontrollanter
cert-manager 1,351 1,357 1,362 certifikathantering
gatekeeper-system 338 338 350 Regeltillämpning
azure-extensions-usage-system 279 277 278 Faktureringsoperator
arc-workload-identity 90 90 91 Webhooks för arbetslastidentitet
azure-secret-store 87 88 87 Hemlig synkroniseringskontrollant
Total ~5 409 ~5 695 ~6 564

Note

  • Azure Arc, cert-manager, gatekeeper och andra namnrymder för infrastruktur förbrukar ~3,8–4,1 GB oavsett brokerkonfiguration. Den här kostnaden är den fasta kostnaden för att köra ett Arc-aktiverat kluster med Azure IoT Operations.
  • azure-iot-operations Endast namnområdet skalar med minnesprofilen och kardinalitetsalternativen, från ~1,3 GB (liten, minimal kardinalitet) till ~2,4 GB (medel, högre kardinalitet).
  • Planera för minst 6 GB minne dedikerad till Azure IoT Operations infrastruktur vid inaktivitet innan du redovisar arbetsbelastningar.

Resursförbrukning för MQTT-brokerpodd

MQTT-brokern är den största variabla komponenten. Minnesskillnader mellan konfigurationer beror på både minnesprofilen (allokering per podd) och kardinaliteten (antalet poddar). Följande tabell visar inaktiv RSS för varje podd. Dessa siffror växer med trafik:

Podd Konfiguration A, Liten (MiB) Konfiguration B, låg (MiB) Konfiguration C, Medel (MiB) Notes
aio-broker-frontend-0 29 33 169 Minnesskalningar per podd med profil
aio-broker-frontend-1 N/A 33 169 Finns inte i Config A (en frontendreplik)
aio-broker-backend-1-0 41 66 211 Minnesskalningar per podd med profil
aio-broker-backend-1-1 41 65 210 Redundansfaktorreplik
aio-broker-backend-2-0 N/A 66 212 Finns inte i Konfiguration A (en partition)
aio-broker-backend-2-1 N/A 65 211 Finns inte i Konfiguration A (en partition)
aio-broker-health-manager-0 41 41 42 Konstant mellan profiler
aio-broker-operator-0 60 60 56 Konstant mellan profiler
aio-broker-diagnostics-probe-0 24 43 43
aio-broker-diagnostics-service-0 49 66 66
aio-broker-authentication-0 24 24 24 Konstant mellan profiler
aio-broker-webhook-0 33 35 32 Konstant mellan profiler

Broker-konfiguration för varje testad profil

Inställningen Konfiguration A (liten) Konfiguration B (låg) Konfiguration C (medel)
Frontend-repliker 1 2 2
Serverdelspartitioner 1 2 2
Redundansfaktor för serverdel 2 2 2
Totalt antal broker-poddar 10 13 13
Inaktivt front-end-minne per pod ~29 MiB ~33 MiB ~169 MiB
Inaktivt serverdelsminne per podd ~41 MiB ~66 MiB ~211 MiB
Max meddelandestorlek 4 MB 16 MB 64 MB

Annan Azure IoT Operations komponentförbrukning

Dessa komponenter har konsekvent användning av inaktiva resurser oavsett minnesprofil eller kardinalitet:

Component Högsta RSS (MiB) Högsta CPU (kärnor) Notes
adr-schema-registry (x2) ~52 vardera 0.002 Schemaregisterpoddar
aio-akri-operator-0 ~39 0,001 Identifiering av Akri-enhet
aio-akri-adr-service-0 ~30 0,001 Tjänsten Akri Azure Device Registry (ADR)
aio-dataflow-dev-0 ~67 0.002 Körning av dataflöde
aio-dataflow-operator-0 ~56 0,001 Dataflödesoperator
aio-operator ~114 0.003 Azure IoT Operations-operatör
aio-observability (x2) ca 125 styck 0.005 OpenTelemetry-insamlare
aio-observability-operator ~106 0.003 Observabilitetsoperator
aio-observability-cluster-metrics-agent ~114 0.004 Agent för mätvärden
aio-wasm-graph-controller-0 ~30 0,001 WebAssembly (WASM)-grafstyrenhet

CPU-förbrukning

CPU-förbrukningen är minimal vid inaktivitet i alla konfigurationer som testats:

Konfiguration Azure IoT Operations namnrymd – maximal processoranvändning Total maximal CPU-användning för hela klustret % av Node
Konfiguration A (Minimal) 0,025 kärnor 0,099 kärnor 1,3 %
Konfiguration B (låg) 0,044 kärnor 0,104 kärnor 1,3 %
Konfiguration C (medel) 0,048 kärnor 0,093 kärnor 1,2 %

Processoranvändningen är försumbar vid inaktivitet. Under produktionsbelastningen förväntar du dig betydligt högre CPU-förbrukning proportionell mot meddelandedataflödet och antalet konfigurerade klientdels-/serverdelsarbetare.

Vägledning för maskinvarustorlek

Baserat på dessa mått för inaktiv baslinje gäller följande lägsta maskinvarurekommendationer för distributioner med en nod. De faktiska kraven är högre under produktionstrafiken:

Minnesprofil Min RAM (med utrymme) Rekommenderat RAM-minne Användningsfall
Liten 8 GB 8–10 GB Låg trafik, endast små paket
Låg nivå 10 GB 12–16 GB Begränsat minne, små paket
Medium 12 GB 16–32 GB Måttlig trafik och meddelandestorlekar
Hög 16 GB 32+ GB Högt dataflöde, stora meddelanden

Important

Dessa rekommendationer tar hänsyn till de ~4 GB fasta infrastrukturöverheaden (Azure Arc, cert-manager, gatekeeper) samt det variabla resursavtrycket för Azure IoT Operations-komponenten. Produktionsarbetsbelastningar kräver ytterligare utrymme för MQTT-meddelandebuffertning, dataflödesbearbetning och OPC UA-anslutningsaktivitet.