Sobre o detector de gargalos do Dataflow

Detecção de gargalos no console devido a operações com longo tempo de processamento.

Use o detector de gargalos do Dataflow para diagnosticar blocos de progresso e otimizar a performance do pipeline nos jobs de streaming do Dataflow. O detector destaca automaticamente os componentes nos pipelines de dados que limitam a capacidade de processamento e causam backlogs.

Ao identificar o local exato e a causa provável dos atrasos na execução, o detector de gargalos permite solucionar problemas de pipelines de streaming complexos do Apache Beam sem adivinhações por tentativa e erro.

Como funciona a detecção de gargalos

Os pipelines de streaming geralmente consistem em uma sequência de etapas conectadas por filas. Os dados fluem sequencialmente de origens upstream por transformações intermediárias para coletores downstream.

Em muitos pipelines, a capacidade de processamento geral é limitada por um único componente ou etapa, criando um gargalo ou uma desaceleração no progresso do job. Se um componente downstream não puder processar dados tão rapidamente quanto um componente upstream produz dados, a fila entre eles começará a ser preenchida. Por exemplo, se um componente de redistribuição de streaming upstream produzir dados mais rapidamente do que um DoFn definido pelo usuário downstream lento pode processar os dados, a fila será preenchida.

Com o tempo, esse atraso afeta todas as etapas de um pipeline. O backlog aumenta a montante, limitando a taxa em que o pipeline pode ingerir e processar a entrada da origem original. Esse comportamento é chamado de propagação de backlog.

Quando a propagação de backlog ocorre, várias fases do pipeline podem parecer não íntegras ou lentas, mesmo que apenas uma etapa esteja causando a restrição subjacente. O detector de gargalos monitora continuamente os atrasos de execução em todos os componentes, incluindo:

  • Redistribuições de streaming
  • Funções definidas pelo usuário (threads DoFn)
  • Confirmações de estado persistente

Quando um componente tem um atraso de processamento que excede cinco minutos, o detector de gargalos do Dataflow o registra como um gargalo. Ele destaca a etapa no gráfico de execução do job e fornece informações de diagnóstico detalhadas.

Tipos de gargalos

Detecção de gargalos no console devido a chaves com acesso frequente ou insuficiência de paralelismo entre as chaves.

Quando um gargalo está ativo, o detector o classifica em um dos seguintes estados:

  • O processamento está travado: o progresso do pipeline é completamente interrompido na etapa afetada.
  • O processamento está em andamento, mas está atrasado: a etapa atual está funcionando, mas não consegue processar os dados recebidos tão rapidamente quanto eles chegam, resultando em um backlog crescente.
  • O processamento está em andamento, mas o backlog é estável: a etapa está processando dados a uma taxa igual à taxa de entrada. O backlog não está crescendo, mas permanece elevado.
  • O processamento está em andamento e está se recuperando de um backlog: a etapa está limpando o backlog. Se você iniciar um pipeline com um backlog atual, esse estado será normal e não exigirá intervenção.

Para mais informações sobre como visualizar os diagnósticos do detector de gargalos e como resolvê-los, consulte Detectar e resolver gargalos.

A seguir