Résoudre les problèmes des retardataires dans les jobs de traitement de flux
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Pour les pipelines de traitement en flux continu, un retardataire est défini comme un élément de travail présentant les caractéristiques suivantes :
Il empêche le filigrane d'avancer pendant une durée significative (de l'ordre de quelques minutes).
Il s'exécute pendant longtemps par rapport aux autres éléments de travail de la même étape.
Les retardataires retiennent le filigrane et ajoutent une latence au job. Si ce délai est acceptable pour votre cas d'utilisation, aucune action n'est requise de votre part. Si vous souhaitez réduire la latence d'un job, gérez d'abord les retardataires.
Afficher les retardataires par flux dans la console Google Cloud
Après avoir démarré une tâche Dataflow, vous pouvez utiliser la console Google Cloud pour afficher les retardataires détectés.
Sur la page Informations sur le job, cliquez sur l'onglet Détails de l'exécution.
Dans la liste Vue graphique, sélectionnez Progression des étapes. Le graphique de progression affiche le nombre agrégé de tous les retardataires détectés à chaque étape.
Pour afficher les détails d'une étape, maintenez le pointeur sur la barre correspondante. Le volet Détails comprend un lien vers les journaux des nœuds de calcul. Lorsque vous cliquez sur ce lien, Cloud Logging s'ouvre et se limite au nœud de calcul et à la période pendant laquelle le retardataire a été détecté.
Afficher les retardataires par workflow d'étapes
Pour afficher les retardataires par workflow d'étapes :
Dans la console Google Cloud , accédez à la page Tâches Dataflow.
Sur la page des détails de la tâche, cliquez sur l'onglet Execution details (Détails d'exécution).
Dans la liste Vue graphique, sélectionnez Workflow des étapes. Le workflow des étapes affiche les étapes d'exécution du job, représentées sous la forme d'un graphique de workflow.
Résoudre les problèmes liés aux retardataires par flux
Si un retardataire est détecté, cela signifie qu'une opération de votre pipeline est en cours d'exécution depuis un certain temps.
Pour résoudre le problème, commencez par vérifier si les insights Dataflow identifient des problèmes.
Si vous ne parvenez toujours pas à identifier la cause, consultez les journaux des nœuds de calcul pour l'étape qui a signalé le retardataire. Pour afficher les journaux des nœuds de calcul pertinents, affichez les détails du retardataire dans la progression de l'étape.
Cliquez ensuite sur le lien du nœud de calcul. Lorsque vous cliquez sur ce lien, Cloud Logging s'ouvre et se limite au nœud de calcul et à la période pendant laquelle le retardataire a été détecté. Recherchez les problèmes susceptibles de ralentir l'étape, tels que les suivants :
Bugs dans le code DoFn ou DoFns bloqué. Recherchez les traces de pile dans les journaux, à proximité du code temporel où le retardataire a été détecté.
Appels à des services externes prenant beaucoup de temps. Pour résoudre ce problème, appelez des services externes par lot et définissez des délais avant expiration sur les RPC.
Limites de quota dans les récepteurs. Si votre pipeline renvoie vers un service Google Cloud, vous pouvez peut-être augmenter le quota. Pour en savoir plus, consultez la documentation Cloud Quotas. Consultez également la documentation du service concerné pour les stratégies d'optimisation, ainsi que la documentation du connecteur d'E/S.
DoFns effectuant des opérations de lecture ou d'écriture de grande taille sur un état persistant.
Envisagez de refactoriser votre code pour effectuer des lectures ou des écritures plus petites sur un état persistant.
Vous pouvez également utiliser le panneau latéral Informations pour identifier les étapes les plus lentes de la phase. L'une de ces étapes peut être à l'origine du retardataire. Cliquez sur le nom de l'étape pour afficher les journaux de nœuds de calcul associés.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (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."]]