Resolver problemas de retardatários em jobs de streaming
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Para canais de streaming, um straggler é definido como um item de trabalho com as seguintes características:
Ela impede que a marca d'água avance por um período significativo (por volta de minutos).
Ele é processado por muito tempo em relação a outros itens de trabalho no mesmo estágio.
Os retardatários impedem a marca d'água e adicionam latência ao job. Se o atraso for aceitável para seu caso de uso, você não precisará fazer nada. Se você quiser reduzir a latência de um job, comece resolvendo os retardatários.
Ver retardatários de streaming no console do Google Cloud
Depois de iniciar um job do Dataflow, você pode usar o console Google Cloud
para visualizar os stragglers detectados.
Na página Detalhes do job, clique na guia Detalhes da execução.
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.
Para ver os detalhes de um cenário, mantenha o ponteiro do mouse sobre a barra do cenário. O painel de detalhes inclui um link para os registros do worker. Clicar neste link abre o Cloud Logging com escopo para o worker e o intervalo de tempo em que o retardatário foi detectado.
Ver retardatários por fluxo de trabalho do estágio
Para visualizar os retardatários por fluxo de trabalho do estágio:
No console Google Cloud , acesse a página Jobs do Dataflow.
Na página de detalhes do job, clique na guia Detalhes da execução.
Na lista Visualização de gráfico, selecione Progresso do estágio. O Fluxo de trabalho do estágio mostra os estágios de execução do job, representados como um
gráfico de fluxo de trabalho.
Resolver problemas de retardatários de streaming
Se um retardatário for detectado, isso significa que uma operação no pipeline está em execução há muito tempo.
Para solucionar o problema, primeiro verifique se os
insights do Dataflow
identificam os problemas.
Se ainda não for possível determinar a causa, verifique nos registros do worker o estágio que
relatou o retardatário. Para ver os registros de worker relevantes, veja os detalhes do retardatário no progresso do estágio.
Em seguida, clique no link do worker. Esse link abre o Cloud Logging, com escopo para
o worker e o período em que o retardatário foi detectado. Procure problemas que possam estar deixando o cenário mais lento, como:
Bugs no código DoFn ou
travado DoFns. Procure rastreamentos de pilha nos registros, próximos ao carimbo de data/hora em que o retardatário foi detectado.
Chamadas para serviços externos que levam muito tempo para serem concluídas Para atenuar esse problema, faça chamadas em lote para serviços externos e defina tempos limite em RPCs.
Limites de cota em coletores. Se o pipeline for enviado para um serviço do Google Cloud, talvez seja possível aumentar a cota. Para mais informações, consulte
Trabalhar com cotas. Além disso, consulte a documentação do serviço específico para estratégias de otimização, bem como a documentação do conector de E/S.
DoFns que executam grandes operações de leitura ou gravação no estado persistente.
Refatore seu código para realizar leituras ou gravações menores no estado persistente.
Também é possível usar o
painel Informações secundárias
para encontrar as etapas mais lentas no cenário. Uma dessas etapas pode ser a causa do atraso. Clique no nome da etapa para ver os registros de trabalho dela.
Depois de determinar a causa, atualize seu pipeline com um novo código e monitore o resultado.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 UTC."],[[["\u003cp\u003eStreaming pipeline stragglers are work items that significantly delay watermark advancement and process for a notably longer duration than other items in the same stage, leading to increased job latency.\u003c/p\u003e\n"],["\u003cp\u003eThe Google Cloud console allows viewing of detected streaming stragglers through the stage progress view or the stage workflow view after a Dataflow job has started.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting streaming stragglers involves checking for issues with Dataflow insights, reviewing worker logs for the relevant stage, and investigating potential causes like bugs in \u003ccode\u003eDoFn\u003c/code\u003e code, slow external service calls, quota limits, or large read/write operations on persistent state.\u003c/p\u003e\n"],["\u003cp\u003eThe Side info panel in the console can help identify the slowest steps in a stage, potentially revealing the cause of a straggler, and these steps can be used to find the relevant worker logs for the issue.\u003c/p\u003e\n"],["\u003cp\u003eAfter identifying the root cause of a straggler, you should update your pipeline code to resolve the issue, and then monitor the job's performance for improvement.\u003c/p\u003e\n"]]],[],null,["# Troubleshoot stragglers in streaming jobs\n\nFor streaming pipelines, a *straggler* is defined as a work item with the\nfollowing characteristics:\n\n- It prevents the [watermark](/dataflow/docs/concepts/beam-programming-model#advanced_concepts) from advancing for a significant length of time (on the order of minutes).\n- It processes for a long time relative to other work items in the same stage.\n\nStragglers hold back the watermark and add latency to the job. If the lag is\nacceptable for your use case, then you don't need to take any action. If you\nwant to reduce a job's latency, start by addressing any stragglers.\n| **Note:** For information about troubleshooting stragglers in batch jobs, see [Troubleshoot stragglers in batch\n| jobs](/dataflow/docs/guides/troubleshoot-batch-stragglers).\n\nView streaming stragglers in the Google Cloud console\n-----------------------------------------------------\n\nAfter you start a Dataflow job, you can use the Google Cloud console\nto view any detected stragglers.\n\nYou can view streaming stragglers in the [stage progress\nview](/dataflow/docs/concepts/execution-details#stage_progress_for_streaming_jobs)\nor the [stage workflow\nview](/dataflow/docs/concepts/execution-details#stage_workflow).\n\n### View stragglers by stage progress\n\nTo view stragglers by stage progress:\n\n1. In the Google Cloud console, go to the Dataflow **Jobs**\n page.\n\n [Go to Jobs](https://console.cloud.google.com/dataflow/jobs)\n2. Click the name of the job.\n\n3. In the **Job details** page, click the **Execution details** tab.\n\n4. In the **Graph view** list, select **Stage progress**. The progress graph\n shows aggregated counts of all stragglers detected within each stage.\n\n5. To see details for a stage, hold the pointer over the bar for the stage. The\n details pane includes a link to the worker logs. Clicking this link opens\n Cloud Logging scoped to the worker and the time range when the straggler\n was detected.\n\n### View stragglers by stage workflow\n\nTo view stragglers by stage workflow:\n\n1. In the Google Cloud console, go to the Dataflow **Jobs**\n page.\n\n Go to [Jobs](https://console.cloud.google.com/dataflow/jobs)\n2. Click the name of the job.\n\n3. In the job details page, click the **Execution details** tab.\n\n4. In the **Graph view** list, select **Stage workflow**. The stage workflow\n shows the execution stages of the job, represented as a workflow graph.\n\nTroubleshoot streaming stragglers\n---------------------------------\n\nIf a straggler is detected, it means that an operation in your pipeline has\nbeen running for an unusually long time.\n\nTo troubleshoot the issue, first check whether\n[Dataflow insights](/dataflow/docs/guides/using-dataflow-insights)\npinpoints any issues.\n\nIf you still can't determine the cause, check the worker logs for the stage that\nreported the straggler. To see the relevant worker logs, view the\n[straggler details](#view_stragglers_by_stage_progress) in the stage progress.\nThen click the link for the worker. This link opens Cloud Logging, scoped to\nthe worker and the time range when the straggler was detected. Look for problems\nthat might be slowing down the stage, such as:\n\n- Bugs in `DoFn` code or [stuck `DoFns`](/dataflow/docs/guides/common-errors#processing-stuck). Look for stack traces in the logs, near the timestamp when the straggler was detected.\n- Calls to external services that take a long time to complete. To mitigate this issue, [batch calls to external services](/dataflow/docs/tutorials/ecommerce-java#micro-batch-calls) and set timeouts on RPCs.\n- Quota limits in sinks. If your pipeline outputs to a Google Cloud service, you might be able to raise the quota. For more information, see the [Cloud Quotas documentation](/docs/quotas/overview). Also, consult the documentation for the particular service for optimization strategies, as well as the documentation for the [I/O Connector](https://beam.apache.org/documentation/io/connectors/).\n- `DoFns` that perform large read or write operations on persistent state. Consider refactoring your code to perform smaller reads or writes on persistent state.\n\nYou can also use the\n[**Side info**](/dataflow/docs/concepts/execution-details#stage-info)\npanel to find the slowest steps in the stage. One of these steps might be\ncausing the straggler. Click on the step name to view the worker logs for that\nstep.\n\nAfter you determine the cause,\n[update your pipeline](/dataflow/docs/guides/updating-a-pipeline) with new\ncode and monitor the result.\n\nWhat's next\n-----------\n\n- Learn to use the [Dataflow monitoring interface](/dataflow/docs/guides/using-monitoring-intf).\n- Understand the [**Execution details**](/dataflow/docs/concepts/execution-details) tab in the monitoring interface."]]