Ajuste de desempenho do Openflow Connector para Kafka¶
Nota
O conector está sujeito aos Termos do conector Snowflake.
Este tópico fornece orientação para otimizar o desempenho de Snowflake Openflow Connector para Kafka a fim de obter a melhor taxa de transferência e minimizar a latência ao ingerir dados no Snowflake.
Considerações de desempenho¶
Ao configurar o Openflow Connector para Kafka para obter o desempenho ideal, considere os seguintes fatores principais que afetam a taxa de transferência e a latência da ingestão:
Configuração do Kafka¶
Contagem de partições¶
Mais partições permitem maior paralelismo, mas requerem uma coordenação cuidadosa com a configuração do consumidor. O excesso de partições pode causar vários problemas: aumento do uso de memória, seleções mais lentas do líder durante falhas e sobrecarga significativa de gerenciamento de metadados nos brokers.
Compressão¶
A compressão de mensagens pode reduzir a largura de banda da rede, mas aumenta a sobrecarga da CPU.
Otimização do FlowFile¶
Tamanho do FlowFile¶
Para otimizar o desempenho, os FlowFiles devem estar no intervalo de 1 a 10 MB em vez de conter mensagens pequenas individuais. Os FlowFiles maiores reduzem a sobrecarga de processamento e melhoram o rendimento, minimizando o número de operações de arquivos individuais. As configurações padrão devem produzir FlowFiles em uma faixa de tamanho aceitável. Espera-se que os FlowFiles sejam pequenos quando a taxa de transferência for baixa.
Se você observar pequenos arquivos de fluxo com alta taxa de transferência, entre em contato com o suporte Snowflake para obter assistência.
Rede e infraestrutura¶
Latência da rede¶
A menor latência entre os brokers Kafka e o Openflow melhora o desempenho geral. A Snowflake recomenda implantar os brokers Kafka e o Openflow na mesma região do CSP.
Recomendações do tamanho de nó¶
A tabela a seguir mostra recomendações de configuração com base nas características de carga de trabalho esperadas:
Tamanho do nó |
Recomendado para |
Capacidade da taxa de mensagens |
|---|---|---|
Small (S) |
Cenários de taxa de transferência baixa a moderada |
Até 18 MB/s por nó |
Medium (M) |
Cenários de taxa de transferência moderada a alta |
Até 145 MB/s por nó |
Large (L) |
Cenários de alto rendimento |
Até 250 MB/s por nó |
Práticas recomendadas de otimização de desempenho¶
Ajuste das tarefas simultâneas do processador¶
Para otimizar o desempenho do processador, você pode ajustar o número de tarefas simultâneas para ambos os processadores ConsumeKafka e PublishSnowpipeStreaming. As tarefas simultâneas permitem que os processadores executem vários threads ao mesmo tempo, melhorando o rendimento em cenários de alto volume.
Para ajustar as tarefas simultâneas de um processador, execute as seguintes tarefas:
Clique com o botão direito do mouse no processador na tela do Openflow.
Selecione Configure no menu de contexto.
Navegue até a guia Scheduling.
No campo Concurrent tasks, insira o número preferido de tarefas simultâneas.
Selecione Apply para salvar a configuração.
Configurações recomendadas para tarefas simultâneas¶
A tabela a seguir mostra as configurações de tarefas simultâneas recomendadas para diferentes tamanhos de nós:
Tamanho do nó |
Tarefas ConsumeKafka |
Tarefas PublishSnowpipeStreaming |
|---|---|---|
Small (S) |
1 |
1 |
Medium (M) |
4 |
2 |
Large (L) |
8 |
2 |
Considerações importantes¶
- Uso da memória
Cada tarefa simultânea consome memória adicional. Monitore o uso do heap de JVM ao aumentar as tarefas simultâneas.
- Partições do Kafka
Para ConsumeKafka, o número de tarefas simultâneas multiplicado pelo número de nós de tempo de execução não deve exceder o número do total de partições do Kafka de todos os tópicos.
- Comece de forma conservadora
Comece com valores mais baixos e aumente gradualmente enquanto monitora as métricas de desempenho.
Solução de problemas de desempenho: gargalos de desempenho comuns¶
Alto atraso do consumidor ou gargalos de ingestão do Snowflake¶
Se o atraso do consumidor Kafka estiver aumentando ou a ingestão do Snowflake estiver lenta, execute as seguintes tarefas:
Verifique a conectividade da rede e a largura de banda entre os corretores Openflow e Kafka.
Observe se a fila em frente ao processador PublishSnowpipeStreaming aumenta.
Em caso afirmativo, considere adicionar tarefas simultâneas ao processador PublishSnowpipeStreaming nas limitações de intervalo fornecidas em Configurações recomendadas para tarefas simultâneas.
Em caso negativo, considere adicionar tarefas simultâneas ao processador ConsumeKafka nas limitações de intervalo fornecidas em Configurações recomendadas para tarefas simultâneas.
Considere usar um tipo de nó maior.
Considere aumentar o número máximo de nós para o tempo de execução.
Pressão da memória¶
Se você estiver enfrentando problemas relacionados à memória:
Reduza os tamanhos dos lotes para diminuir o volume de memória.
Reduza o número de tarefas simultâneas para o processador ConsumeKafka.
Considere a possibilidade de atualizar para um tipo de nó maior.
Problemas de latência da rede¶
Se você estiver enfrentando alta latência:
Verifique a configuração da rede entre o Openflow e os sistemas externos.
Considere a possibilidade de implementar o Openflow mais próximo do cluster do Kafka.
Se estiver trabalhando com baixa taxa de transferência, considere reduzir as configurações de atraso do cliente no processador PublishSnowpipeStreaming e o tempo máximo não confirmado no processador ConsumeKafka.