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 nível 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 carga 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, Implantação de teste A opção de menor custo, capaz de suportar cargas 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 baixa taxa de transferência, mesmo aquelas que empregam computação mais complexa. Os processadores SP5 podem suportar filtragem básicas, projeções e processamento de change stream. |
SP10 | Implantação de Produção Principal Uma linha de base para cargas 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 | Implantação de Produção Complexa 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 pipeline de agregação é o principal driver do consumo de CPU e RAM.
- Windows: janelas de longa duração consomem mais RAM para manter a bordo
- Documentos.
- Lógica Personalizada: estágios Javascript
$functionou agrupamento complexo - a lógica aumenta os requisitos computacionais de cada mensagem.
- Lógica Personalizada: estágios Javascript
- 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.
Infraestrutura
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 da maior taxa de transferência dos níveis SP30 e SP50.
Por outro lado, cargas de trabalho de Stream Processing 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, os processadores SP50 oferecem quatro vezes os threads do que os processadores SP30.
- 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 dimensionar 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.