Resolver problemas de jobs em lote lentos ou travados

Nesta página, explicamos como resolver problemas comuns de jobs em lote lentos ou travados do Dataflow.

Se o job em lote estiver lento ou travado, use a guia Detalhes da execução para encontrar mais informações sobre o job e identificar a fase ou worker que está causando um gargalo.

Identificar a causa raiz

  1. Verifique se o job está apresentando problemas durante a inicialização do worker. Para mais informações, consulte Erro ao sincronizar o pod.

    Para verificar se o job começou a processar dados, procure a seguinte entrada de registro no registro de mensagens do job:

    All workers have finished the startup processes and began to receive work requests
    
  2. Para comparar o desempenho de jobs diferentes, verifique se o volume de dados de entrada, a configuração do worker, o comportamento do escalonamento automático e as configurações do Dataflow Shuffle são os mesmos.

  3. Verifique os registros de mensagens do job para problemas como limites de cota, problemas de falta de estoque ou esgotamento de endereços IP.

  4. Na guia Detalhes da execução, compare o progresso da fase para identificar as fases que levaram mais tempo.

  5. Procure stragglers no job. Para mais informações, consulte Resolver problemas de stragglers em jobs em lote.

  6. Verifique as métricas de capacidade de processamento, CPU e utilização de memória.

  7. Verifique os registros do worker em busca de avisos e erros.

  8. Verifique se há chaves de uso intenso.

  9. Se você não estiver usando Dataflow Shuffle, verifique os registros do shuffler em busca de avisos e erros durante a operação de embaralhamento. Se você encontrar um erro de tempo limite de RPC na porta 12345 ou 12346, talvez o job esteja sem uma regra de firewall. Consulte Regras de firewall para o Dataflow.

  10. Se o Runner v2 estiver ativado, verifique os registros do harness em busca de erros. Para mais informações, consulte Resolver problemas do Runner v2.

Identificar stragglers

Um straggler é um item de trabalho lento em relação a outros itens de trabalho da fase. Para saber mais sobre como identificar e corrigir stragglers, consulte Resolver problemas de stragglers em jobs em lote.

Identificar fases lentas ou travadas

Para identificar fases lentas ou travadas, use a visualização Progresso da fase. Barras mais longas indicam que a fase leva mais tempo. Use essa visualização para identificar as fases mais lentas do pipeline.

Depois de encontrar a fase de gargalo, siga estas etapas:

  • Identifique o worker com atraso nessa fase.
  • Se não houver workers com atraso, use o painel Informações da fase para identificar a etapa mais lenta. Use essas informações para identificar candidatos para a otimização do código do usuário.

Identifique um worker com atraso

Para identificar um worker com atraso de uma fase específica, use a visualização Progresso do worker. Essa visualização mostra se todos os workers estão processando o trabalho até o final da fase ou se um único worker está parado em uma tarefa atrasada. Se você encontrar um worker com atraso, siga as etapas a seguir:

Ferramentas para depuração

Quando você tem um pipeline lento ou travado, as ferramentas a seguir podem ajudar a diagnosticar o problema.

Para conferir outras métricas não incluídas na interface da Web de monitoramento do Dataflow, consulte a lista completa de métricas do Dataflow em Google Cloud Métricas.