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 de 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 Runner v2 estiver ativado, verifique os registros de harness para encontrar 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. 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 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 correlacionar incidentes e identificar gargalos, use o Cloud Monitoring para Dataflow.
  • Para monitorar a performance do pipeline, use o Cloud Profiler.
  • Algumas transformações são mais adequadas para pipelines de alto volume do que outras. As mensagens de registro podem identificar uma transformação de usuário travada em pipelines em lote ou de streaming.
  • Para saber mais sobre um job travado, use as métricas de job do Dataflow. A lista a seguir tem métricas úteis:
    • A métrica Bytes de backlog (backlog_bytes) mede a quantidade de entrada não processada em bytes por fase. Use essa métrica para encontrar uma etapa combinada que não tenha capacidade de processamento. Da mesma forma, a métrica de elementos do backlog (backlog_elements) mede o número de elementos de entrada não processados de uma fase.
    • A métrica Chaves de paralelismo de processamento (processing_parallelism_keys) mede o número de chaves de processamento paralelo para uma fase específica do pipeline nos últimos cinco minutos. Use essa métrica para investigar das seguintes maneiras:
      • Restrinja o problema a fases específicos e confirme os avisos de teclas de atalho, como A hot key ... was detected.
      • Encontre gargalos de capacidade de processamento causados por paralelismo insuficiente. Esses gargalos podem resultar em pipelines lentos ou travados.
    • A métrica de atraso do sistema (system_lag) e a métrica de atraso do sistema por fase (per_stage_system_lag) medem o tempo máximo que um item de dados ficou em processamento ou aguardando processamento. Use essas métricas para identificar fases e gargalos ineficientes das fontes de dados.

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 métricas doGoogle Cloud .