Resolver problemas de stragglers em jobs em lote

Stragglers são itens de trabalho que atrasam os jobs do Dataflow ao impedir a execução de trabalhos em paralelo.

Um straggler é um item de trabalho com as seguintes características:

  • Demora significativamente mais para ser concluído do que outros itens de trabalho no mesmo estágio.
  • Reduz o paralelismo no estágio.
  • Bloqueia a inicialização de novos trabalhos.

Na pior das hipóteses, um straggler bloqueia a conclusão de um estágio, porque uma pequena porcentagem do trabalho fica em andamento, causando atrasos gerais em um job.

O Dataflow detecta stragglers que ocorrem durante jobs em lote. Se o Dataflow detectar um straggler, ele também tentará determinar a causa do straggler.

Visualizar stragglers na interface de monitoramento do Dataflow

Depois de iniciar um job do Dataflow, você pode usar o console do Google Cloud para visualizar os stragglers detectados.

É possível visualizar os stragglers por estágio ou por worker. Use essas visualizações para descobrir quais estágios têm stragglers e, em seguida, identifique os workers em que ocorreram esses stragglers em cada estágio.

Visualizar stragglers por estágio

Para visualizar os stragglers por estágio:

  1. No console do Google Cloud, acesse a página Jobs do Dataflow.

    Acesse Jobs

  2. Clique no nome do job.

  3. Na página de detalhes do job, clique na guia Detalhes da execução.

  4. Na lista Visualização de gráfico, selecione Progresso do estágio. O gráfico de progresso mostra contagens agregadas de todos os stragglers detectados em cada estágio.

  5. Para ver detalhes de um estágio, passe o cursor sobre a barra dele. Para ver os workers do estágio, clique em Visualizar workers no painel de detalhes.

Visualizar stragglers por worker

Para visualizar os stragglers por worker:

  1. No console do Google Cloud, acesse a página Jobs do Dataflow.

    Acesse Jobs

  2. Clique no nome do job.

  3. Na página de detalhes do job, clique na guia Detalhes da execução.

  4. Na lista Visualização de gráfico, selecione Progresso do worker.

  5. Na lista Filtrar workers por estágio, selecione o estágio. O gráfico de progresso mostra todos os stragglers detectados para esse estágio. A barra mostra sombreamento mais escuro no ponto em que o straggler foi detectado pela primeira vez.

  6. Para ver os detalhes de um worker, passe o cursor sobre a barra dele.

No painel Informações do estágio, a seção Detalhes do straggler lista os stragglers para todos os workers mostrados na página, com as seguintes informações:

  • O horário de início em que o straggler foi detectado.
  • Worker que sofreu o atraso.
  • A causa, se conhecida.

Resolver problemas com stragglers

O Dataflow detecta as seguintes causas de stragglers:

Resolver problemas de stragglers causados por chaves de atalho

Vários fatores podem causar stragglers, mas uma causa comum é a existência de uma chave de atalho. Uma chave de atalho é uma chave que representa significativamente mais elementos do que outras chaves na mesma PCollection. As chaves de atalho podem criar stragglers porque limitam a capacidade do Dataflow de processar elementos em paralelo.

Se o Dataflow detectar um straggler causado por uma chave de atalho, o painel Detalhes do straggler lista Hot Key como a causa.

Por padrão, o Dataflow não exibe o valor da chave de atalho. Para exibir o valor da chave, defina a opção de pipeline hotKeyLoggingEnabled como true ao executar o job.

Para resolver esse problema, verifique se seus dados estão distribuídos de maneira uniforme. Se uma chave tiver muitos valores de forma desproporcional, realize uma das ações a seguir:

A seguir