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á enfrentando 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 no registro job-message a seguinte entrada de registro:

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

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

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

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

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

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

  8. Verificar se há chaves de uso intenso.

  9. Se você não estiver usando o Dataflow Shuffle, verifique os registros do shuffler para 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 Portable Runner estiver ativado, verifique os registros do harness para ver se há erros. Para mais informações, consulte Resolver problemas do Portable Runner.

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. As barras mais longas indicam que o estágio 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 à 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 um pipeline está 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 metrics.