Résoudre les problèmes des retardataires dans les jobs de traitement de flux

Pour les pipelines de traitement par flux, 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.

Vous pouvez consulter les retardataires par flux dans la vue de progression des étapes ou dans la vue du workflow des étapes.

Afficher les retardataires par progression d'étape

Pour afficher les retardataires par progression d'étape, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Tâches de Dataflow.

    Accédez aux tâches

  2. Cliquez sur le nom de la tâche.

  3. Sur la page Informations sur le job, cliquez sur l'onglet Détails de l'exécution.

  4. 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.

    Capture d'écran de la vue de progression des étapes

  5. 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é.

    Capture d'écran de la fiche d'informations du retardataire.

Afficher les retardataires par workflow d'étapes

Pour afficher les retardataires par workflow d'étapes :

  1. Dans la console Google Cloud, accédez à la page Tâches de Dataflow.

    Accédez aux tâches

  2. Cliquez sur le nom de la tâche.

  3. Sur la page des détails de la tâche, cliquez sur l'onglet Execution details (Détails d'exécution).

  4. 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.

    Capture d'écran de la vue du workflow des étapes

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 section Utiliser des sous-réseaux. 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.

Après avoir identifié la cause, mettez à jour votre pipeline avec un nouveau code et surveillez le résultat.

Étapes suivantes