Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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-operationsespaç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.