Bazowe profile zasobów dla Operacje Azure IoT

Ten dokument przedstawia zmierzone bazowe zużycie zasobów dla wdrożeń Operacje Azure IoT w stanie bezczynności (bez aktywnych obciążeń). Użyj tych profilów, aby zweryfikować, czy sprzęt spełnia minimalne wymagania i jak ustanowić punkty odniesienia monitorowania zasobów.

Przegląd

Operacje Azure IoT wdraża wiele komponentów w kilku przestrzeniach nazw Kubernetes. Całkowite zużycie zasobów zależy od dwóch czynników: profilu pamięci brokera MQTT (który określa alokację pamięci dla każdego poda) oraz krotności brokera (liczby replik frontendu, partycji backendu i współczynnika nadmiarowości, które określają liczbę wdrożonych podów). Wyższa kardynalność oznacza więcej zasobników, a wyższy profil pamięci oznacza, że każdy zasobnik używa więcej pamięci.

Trzy konfiguracje były mierzone w klastrach z jednym węzłem w stanie bezczynności (bez połączonych zasobów, bez aktywnych przepływów danych, niemal zerowy ruch). Są to liczby bazowe, a nie maksimum. Obciążenia produkcyjne znacznie zwiększają zużycie:

Configuration Profil pamięci Kardynalność Pamięć szczytowa węzła Operacje Azure IoT przestrzeń nazw RSS szczytowa Total Pod Peak RSS Liczba podów
Konfiguracja A Malutki 1 fronton
1 partycja
współczynnik nadmiarowości 2
~4 979 MiB ~1298 MiB ~5409 MiB 55
Konfiguracja B Low 2 frontendy
2 partycje
współczynnik nadmiarowości 2
~5130 MiB ~1559 MiB ~5,695 MiB 58
Konfiguracja C Średni 2 frontendy
2 partycje
współczynnik nadmiarowości 2
~6 088 MiB ~2407 MiB ~6564 MiB 58

Uwaga / Notatka

Różnica między konfiguracją A a konfiguracją B wynika zarówno z większej kardynalności (więcej zasobników brokera) i innego profilu pamięci. Różnica między konfiguracją B i konfiguracją C jest wyłącznie z profilu pamięci (ta sama kardynalność, ta sama liczba zasobników). Zobacz Przykłady wdrożenia produkcyjnego dla załadowanych scenariuszy.

Podział przestrzeni nazw

W poniższej tabeli przedstawiono szczytową pamięć RSS według przestrzeni nazw we wszystkich trzech konfiguracjach w stanie bezczynności:

Namespace Konfiguracja A, Tiny (MiB) Konfiguracja B, niska (MiB) Konfiguracja C, średnia (MiB) Description
azure-iot-operations 1,298 1,559 2,407 podstawowe usługi Operacje Azure IoT (broker, przepływy danych, łączniki, obserwowalność)
azure-arc 1,964 1,985 1,990 Agenty i kontrolery usługi Azure Arc
menedżer certyfikatów 1,351 1,357 1,362 Zarządzanie certyfikatami
gatekeeper-system 338 338 350 Egzekwowanie zasad
azure-extensions-usage-system 279 277 278 Operator płatności
arc-workload-identity 90 90 91 Webhooki tożsamości obciążenia
azure-secret-store 87 88 87 Kontroler synchronizacji wpisów tajnych
Łącznie ~5,409 ~5,695 ~6564

Uwaga / Notatka

  • Azure Arc, cert-manager, gatekeeper i inne przestrzenie nazw infrastruktury zużywają ok. 3.8-4.1 GB niezależnie od konfiguracji brokera. To obciążenie jest stałym kosztem uruchamiania klastra z obsługą usługi Arc z Operacje Azure IoT.
  • Tylko przestrzeń nazw azure-iot-operations skaluje się wraz z profilem pamięci i wyborem kardynalności, od ok. 1,3 GB (Tiny, minimalna kardynalność) do ok. 2,4 GB (Medium, wyższa kardynalność).
  • Zaplanuj co najmniej 6 GB pamięci przeznaczonej dla infrastruktury Operacje Azure IoT w stanie bezczynności, przed uwzględnieniem jakichkolwiek obciążeń.

Zużycie zasobów poda brokera MQTT

Broker MQTT jest największym składnikiem zmiennej. Różnice w zużyciu pamięci między konfiguracjami wynikają zarówno z profilu pamięci (alokacji na pod), jak i z liczby podów. Poniższa tabela przedstawia RSS w stanie bezczynności dla każdego poda. Te liczby rosną wraz z ruchem:

Pod Konfiguracja A, mała (MiB) Konfiguracja B, niska (MiB) Konfiguracja C, Średnia (MiB) Notatki
aio-broker-frontend-0 29 33 169 Pamięć na pod skaluje się wraz z profilem
aio-broker-frontend-1 N/A 33 169 Nie występuje w konfiguracji A (jedna replika frontendu)
aio-broker-backend-1-0 41 66 211 Pamięć na pod skaluje się w zależności od profilu
aio-broker-backend-1-1 41 65 210 Replika współczynnika redundancji
aio-broker-backend-2-0 N/A 66 212 Nie występuje w konfiguracji A (jedna partycja)
aio-broker-backend-2-1 N/A 65 211 Nie występuje w konfiguracji A (jedna partycja)
aio-broker-health-manager-0 41 41 42 Stała we wszystkich profilach
aio-broker-operator-0 60 60 56 Stała we wszystkich profilach
aio-broker-diagnostics-probe-0 24 43 43
aio-broker-diagnostics-service-0 49 66 66
aio-broker-authentication-0 24 24 24 Stała we wszystkich profilach
aio-broker-webhook-0 33 35 32 Stała we wszystkich profilach

Konfiguracja brokera dla każdego przetestowanego profilu

Setting Konfiguracja A (mała) Konfiguracja B (niska) Konfiguracja C (średnia)
Repliki frontonu 1 2 2
Partycje zaplecza 1 2 2
Współczynnik nadmiarowości zaplecza 2 2 2
Łączna liczba zasobników brokera 10 13 13
Bezczynna pamięć interfejsu użytkownika na pod ~29 MiB ~33 MiB ~169 MiB
Bezczynna pamięć backendu na pod ~41 MiB ~66 MiB ~211 MiB
Maksymalny rozmiar wiadomości 4 MB 16 MB 64 MB

Inne zużycie składników Operacje Azure IoT

Te składniki mają spójne bezczynne użycie zasobów niezależnie od profilu pamięci lub kardynalności:

Składnik Maksymalne RSS (MiB) Maksymalna liczba rdzeni CPU Notatki
adr-schema-registry (x2) ~52 każdy 0,002 Zasobniki rejestru schematów
aio-akri-operator-0 ~39 0.001 Odnajdywanie urządzeń Akri
aio-akri-adr-service-0 ~30 0.001 Usługa Akri Azure Device Registry (ADR)
aio-dataflow-dev-0 ~67 0,002 Środowisko uruchomieniowe przepływu danych
aio-dataflow-operator-0 ~56 0.001 Operator przepływu danych
aio-operator ~114 0.003 operator usługi Operacje Azure IoT
aio-observability (x2) ~125 każdy 0.005 Kolektory OpenTelemetry
aio-observability-operator ~106 0.003 Operator obserwacji
aio-observability-cluster-metrics-agent ~114 0.004 Agent zbierający metryki
aio-wasm-graph-controller-0 ~30 0.001 Kontroler wykresu WebAssembly (WASM)

Użycie procesora CPU

Użycie procesora CPU jest minimalne w przypadku bezczynności we wszystkich testowanych konfiguracjach:

Configuration Operacje Azure IoT szczytowe użycie procesora CPU przestrzeni nazw Łączne szczytowe użycie CPU klastra % węzła
Konfiguracja A (mała) 0,025 rdzeni 0,099 rdzeni 1,3%
Konfiguracja B (niska) 0,044 rdzenie 0,104 rdzenia 1,3%
Konfiguracja C (Średnia) 0,048 rdzeni 0,093 rdzeni 1,2%

Użycie procesora CPU jest niewielkie w przypadku bezczynności. Przy obciążeniu produkcyjnym należy oczekiwać znacznie wyższego zużycia procesora, proporcjonalnie do przepustowości komunikatów oraz liczby skonfigurowanych procesów roboczych frontendu i backendu.

Wskazówki dotyczące ustalania rozmiaru sprzętu

Na podstawie tych bezczynnych pomiarów punktu odniesienia następujące minimalne zalecenia dotyczące sprzętu dotyczą wdrożeń z jednym węzłem. Rzeczywiste wymagania są wyższe w ramach ruchu produkcyjnego:

Profil pamięci Minimalna ilość pamięci RAM (z zapasem) Zalecana pamięć RAM Przypadek użycia
Małe 8 GB 8–10 GB Mały ruch, tylko małe pakiety
Low 10 GB 12–16 GB Ograniczona pamięć, małe pakiety
Medium 12 GB 16–32 GB Umiarkowany ruch i rozmiary komunikatów
Wysoki 16 GB 32+ GB Wysoka przepływność, duże komunikaty

Ważna

Te zalecenia uwzględniają około ~4 GB stałego narzutu infrastrukturalnego (Azure Arc, cert-manager, gatekeeper) oraz zmienny rozmiar komponentów Operacje Azure IoT. Obciążenia produkcyjne wymagają dodatkowego miejsca na potrzeby buforowania komunikatów MQTT, przetwarzania przepływu danych i działania łącznika OPC UA.