O Atlas Stream Processing aloca recursos por processador de stream de acordo com níveis. Alocação e custo fixos de recursos fornecem previsibilidade, simplificando o processo de design do sistema. Use este guia para entender quais níveis são mais apropriados para suas cargas de trabalho de processamento de fluxo ao planejar uma implantação.
Alocação de recursos
Cada camada fornece uma alocação fixa de potência de processamento, memória, largura de banda, paralelismo e – no caso de processadores com fontes Apache Kafka – partições.
Nível | vCPU | RAM (GB) | Largura de banda (MBP) | Paralelismo máximo | Limite de partição Kafka de origem |
|---|---|---|---|---|---|
SP2 | 0.25 | 0.5 | 50 | 1 | 32 |
SP5 | 0.5 | 1 | 125 | 2 | 64 |
SP10 | 1 | 2 | 200 | 8 | Ilimitado |
SP30 | 2 | 8 | 750 | 16 | Ilimitado |
SP50 | 8 | 32 | 2500 | 64 | Ilimitado |
Seleção de volume de trabalho
As diferentes alocações de recursos de cada nível os tornam adequados para diferentes estágios e escalas de projeto.
Nível | Caso de uso |
|---|---|
SP2 | Desenvolvimento, Implementação de teste A opção de menor custo, capaz de suportar volumes de trabalho simples com requisitos de recursos limitados. |
SP5 | Desenvolvimento, implantação de produção básica Uma opção de baixo custo adequada para tarefas de produção com baixo rendimento, mesmo aquelas que empregam computação mais complexa. Os processadores SP5 podem suportar filtragem básicas, projeções e processamento de change stream. |
SP10 | Sistema de produção principal Uma linha de base para volumes de trabalho de produção. O SP10 e superior são destinados a pipelines que exigem níveis mais altos de paralelismo, particionamento ilimitado do Kafka ou operações de enriquecimento de dados, como pesquisas e junções. |
SP30 | Sistema de produção complexo Uma opção de alto desempenho projetada para operações de estado com uso intensivo de memória. A SP30 oferece suporte a pipelines que usam janelas de longa duração, várias pesquisas e estágios que exigem grandes buffers de RAM para enriquecimento de dados em escala. |
SP50 | Produção em escala empresarial A opção de melhor desempenho, projetada para fluxos de alta taxa de transferência e lógica de transformação extensiva. Os processadores SP50 são adequados para operações que exigem paralelismo massivo ou fluxos de trabalho de computação de uso intensivo. |
Considerações
Considere os seguintes fatores ao selecionar um nível apropriado:
Onda de inicialização
Um processador de fluxo pode exigir mais recursos durante sua execução inicial do que durante operações regulares. Por exemplo, se o processador executar um $initialSync em uma grande coleção do Atlas , esse processador precisará oferecer suporte a E/S e computação pesadas durante a sincronização.
Para suportar essa demanda elevada, selecione um nível mais alto temporariamente e reduza a escala do processador quando a sincronização estiver concluída e o processador fizer a transição para consumir apenas novos eventos de fluxo de alterações.
Lógica de Pipeline
A lógica do aggregation pipeline é o principal impulsionador do consumo de CPU e RAM.
- Windows: janelas de longa duração consomem mais RAM para manter a bordo
- documentos.
- Lógica Personalizada:
$functionestágios Javascript ou agrupamento complexo - a lógica aumenta os requisitos computacionais de cada mensagem.
- Lógica Personalizada:
- Combinação de complexidade: estágios adicionais com estado ou computacionalmente complexos
- introduzir mais variação potencial na demanda de recursos. A manutenção da capacidade excedente garante uma taxa de transferência consistente, mesmo durante picos de consumo.
Infra-estrutura
Cada ponto de rede ou contato de armazenamento aumenta a sobrecarga de um processador de fluxo.
- Densidade de origem ou coletor: lendo ou gravando em paralelizado
- fontes ou coletores — como os tópicos do Apache Kafka com suas partições — aumenta os requisitos de E/S.
- Enriquecimento de Dados:
$lookupe$httpsestágios; e operações - contra coleções do Atlas para Enriquecer os dados em um fluxo exigem largura de banda da rede e pool de conexões.
- Enriquecimento de Dados:
- Coordenação: Em implantações complexas orquestrando muitas fontes
- e coletores, os processadores de fluxo podem servir como centros que roteiam o fluxo de dados entre cada um desses nós. Esses processadores se beneficiam do maior rendimento dos níveis SP30 e SP50.
Por outro lado, volumes de trabalho de processamento de fluxo de alta taxa de transferência podem aumentar a demanda dos recursos conectados.
- Impacto no Atlas: E/S paralelizada e de alto volume de um fluxo
processador pode exceder a capacidade de leitura ou gravação dos Atlas clusters de origem ou coletor. Isso não só pode aumentar a latência do processador, mas também gargalos de outras cargas de trabalho dependentes desses clusters.
Para garantir o desempenho de todo o sistema, escale seus Atlas clusters proporcionalmente aos processadores com os quais eles interagem.
Desempenho e latência
As metas de desempenho podem exigir um processador de nível superior, mesmo quando a lógica de processamento é simples.
- Alta taxa de transferência: os processadores de nível superior oferecem suporte melhor aos fluxos de suporte
- que produzem eventos em uma taxa alta.
SLAs de baixa latência: o alto paralelismo oferecido pelos processadores de nível superior ajuda a garantir que os eventos não se acumulem em uma fila quando a velocidade é importante. Em particular, os50 processadores SP oferecem quatro vezes os threads do que30 os processadores SP.
- Enriquecimento de dados e cache: ao usar
$cachedLookuppara enriquecimento - fluxos com grandes conjuntos de dados de referência estáticos ou de mudança lenta, favorecem processadores de nível superior para fornecer a RAM necessária para o cache.
- Enriquecimento de dados e cache: ao usar
- Sinks complexos: Alguns coletores envolvem mais caros
- transformações, transações e sobrecarga de gerenciamento de arquivos. Para os processadores que interagem com esses sinks, os níveis mais altos ajudam a garantir desempenho e latência consistentes.
ESCALABILIDADE
O dimensionamento do Atlas Stream Processing é vertical. Você pode aumentar ou diminuir a escala de um processador parando-o, selecionando um novo nível e reiniciando-o. Os checkpoints do Atlas Stream Processing garantem que nenhum dado seja perdido durante a transição. Monitore o desempenho de seus processadores regularmente e ajuste seus níveis com base nos fatores descritos neste guia.