Perfis de recursos de referência para o Operações IoT do Azure

Esta referência fornece um consumo de recursos de referência medido para implementações do Operações IoT do Azure em inatividade (sem cargas de trabalho ativas). Use estes perfis para validar que o seu hardware cumpre os requisitos mínimos e para estabelecer bases de monitorização de recursos.

Descrição geral

O Operações IoT do Azure implementa múltiplos componentes em vários namespaces Kubernetes. O consumo total de recursos depende de dois fatores: o perfil de memória do broker MQTT (que controla a alocação de memória por pod) e a cardinalidade do broker (número de réplicas de frontend, partições de backend e fator de redundância, que controla quantos pods são implementados). Maior cardinalidade significa mais pods, e um perfil de memória mais elevado significa que cada pod usa mais memória.

Três configurações foram medidas em clusters de nó único em inatividade (sem ativos ligados, sem fluxos de dados ativos, tráfego quase nulo). Estes são números de referência, não máximos. As cargas de trabalho de produção aumentam significativamente o consumo:

Configuração Perfil de Memória Cardinality Memória de Pico de Nó Operações IoT do Azure Namespace Peak RSS Total Pod Peak RSS Número de pods
Config A Minúsculo 1 frontend
1 partição
Fator de redundância 2
~4.979 MiB ~1.298 MiB ~5.409 MiB 55
Config B Baixo 2 frontends
2 partições
Fator de redundância 2
~5.130 MiB ~1.559 MiB ~5.695 MiB 58
Config C Medium 2 frontends
2 partições
Fator de redundância 2
~6.088 MiB ~2.407 MiB ~6.564 MiB 58

Note

A diferença entre a Configuração A e a Configuração B resulta tanto de uma maior cardinalidade (mais pods de broker) como de um perfil de memória diferente. A diferença entre a Config B e a Config C vem puramente do perfil de memória (mesma cardinalidade, mesmo número de pods). Veja exemplos de implementação em produção para cenários com carga.

Divisão do espaço de nomes

A tabela seguinte mostra o pico de memória RSS por namespace em todas as três configurações em inatividade:

Namespace Configuração A, Pequena (MiB) Configuração B, Baixa (MiB) Configuração C, Média (MiB) Descrição
Azure-iot-operations 1,298 1,559 2,407 Serviços principais do Operações IoT do Azure (broker, fluxos de dados, conectores, observabilidade)
azure-arc 1,964 1,985 1,990 Agentes e controladores Azure Arc
cert-manager 1,351 1,357 1,362 Gestão de certificados
Sistema de porteiro 338 338 350 Imposição de políticas
Azure-extensions-usage-system 279 277 278 Operador de faturação
arc-workload-identity 90 90 91 Webhooks de identidade da carga de trabalho
Azure-secret-store 87 88 87 Controlador de sincronização secreta
Total ~5.409 ~5.695 ~6.564

Note

  • Azure Arc, cert-manager, gatekeeper e outros namespaces de infraestrutura consomem ~3,8-4,1 GB independentemente da configuração do broker. Esta sobrecarga é o custo fixo de operar um cluster compatível com Arc com Operações IoT do Azure.
  • Apenas o azure-iot-operations espaço de nomes varia em função do perfil de memória e das opções de cardinalidade, de ~1,3 GB (Tiny, cardinalidade mínima) até ~2,4 GB (Medium, cardinalidade mais elevada).
  • Planeia pelo menos 6 GB de memória dedicada à infraestrutura Operações IoT do Azure em inatividade antes de contabilizar qualquer carga de trabalho.

Consumo de recursos do pod broker MQTT

O corretor MQTT é o maior componente variável. As diferenças de memória entre configurações provêm tanto do perfil de memória (alocação por pod) como da cardinalidade (número de pods). A tabela seguinte mostra o RSS em inatividade por pod. Estes números aumentam com o tráfego:

Cápsula Configuração A, Pequena (MiB) Configuração B, Baixa (MiB) Configuração C, Média (MiB) Notes
aio-broker-frontend-0 29 33 169 A memória de cada pod varia em função do perfil
AIO-broker-frontend-1 N/A 33 169 Não está presente na Configuração A (uma réplica de frontend)
aio-broker-backend-1-0 41 66 211 A memória de cada pod varia em função do perfil
aio-broker-backend-1-1 41 65 210 Réplica de fator de redundância
aio-broker-backend-2-0 N/A 66 212 Não presente na Configuração A (uma partição)
aio-broker-backend-2-1 N/A 65 211 Não presente na Configuração A (uma partição)
aio-broker-health-manager-0 41 41 42 Constante em todos os perfis
aio-broker-operator-0 60 60 56 Constante em todos os perfis
aio-broker-diagnostics-probe-0 24 43 43
aio-broker-diagnostics-service-0 49 66 66
aio-broker-authentication-0 24 24 24 Constante em todos os perfis
aio-broker-webhook-0 33 35 32 Constante em todos os perfis

Configuração do broker por cada perfil testado

Definições Configuração A (Pequena) Configuração B (Baixa) Config C (Médio)
Réplicas da interface 1 2 2
Partições de backend 1 2 2
Fator de redundância de back-end 2 2 2
Pods de corretores totais 10 13 13
Memória inativa do front-end por pod ~29 MiB ~33 MiB ~169 MiB
Memória inativa de backend por pod ~41 MiB ~66 MiB ~211 MiB
Tamanho máximo da mensagem 4 MB 16 MB 64 MB

Outros consumos de componentes do Operações IoT do Azure

Estes componentes têm uma utilização consistente de recursos ociosos independentemente do perfil de memória ou cardinalidade:

Componente RSS de pico (MiB) CPU de pico (núcleos) Notes
adr-schema-registry (x2) ~52 cada um 0.002 Pods de registo de esquemas
aio-akri-operator-0 ~39 0.001 Descoberta do dispositivo Akri
aio-akri-adr-service-0 ~30 0.001 serviço Akri Azure Device Registry (ADR)
AIO-Dataflow-dev-0 ~67 0.002 Tempo de execução do fluxo de dados
aio-dataflow-operator-0 ~56 0.001 Operador de fluxo de dados
aio-operator ~114 0.003 operador do Operações IoT do Azure
aio-observability (x2) ~125 cada 0.005 Coletores do OpenTelemetry
aio-observability-operator ~106 0.003 Operador de observabilidade
AIO-observability-cluster-metrics-agent ~114 0.004 Agente de métricas
aio-wasm-graph-controller-0 ~30 0.001 Controlador de grafos WebAssembly (WASM)

Consumo de CPU

O consumo de CPU é mínimo em inatividade em todas as configurações testadas:

Configuração Operações IoT do Azure Namespace Peak CPU Pico total de CPU do cluster % de nós
Config A (Tiny) 0,025 núcleos 0,099 núcleos 1.3%
Configuração B (Baixa) 0,044 núcleos 0,104 núcleos 1.3%
Config C (Médio) 0,048 núcleos 0,093 núcleos 1.2%

O uso da CPU é negligenciável em idle. Sob carga de produção, é de esperar um consumo de CPU significativamente mais elevado, proporcional à taxa de processamento de mensagens e ao número de processos de frontend/backend configurados.

Orientação de dimensionamento de hardware

Com base nestas medições de base de inatividade, aplicam-se as seguintes recomendações mínimas de hardware para implementações de nó único. Os requisitos reais são mais elevados em tráfego de produção:

Perfil de Memória RAM mínima (com margem) RAM recomendada Caso de uso
Tiny 8 GB 8–10 GB Pouco tráfego, apenas pacotes pequenos
Baixo 10 GB 12–16 GB Memória limitada, pacotes pequenos
Medium 12 GB 16–32 GB Tráfego moderado e tamanhos de mensagens
High 16 GB 32+ GB Alta capacidade de consumo, mensagens grandes

Importante

Estas recomendações têm em conta os ~4 GB de sobrecarga fixa da infraestrutura (Azure Arc, cert-manager, gatekeeper), além da ocupação variável dos componentes do Operações IoT do Azure. As cargas de trabalho de produção requerem margem adicional para buffering de mensagens MQTT, processamento de fluxo de dados e atividade do conector OPC UA.