Résoudre les problèmes liés aux jobs par lot lents ou bloqués

Cette page explique comment résoudre les causes courantes de jobs Dataflow par lot lents ou bloqués.

Si votre job par lot est lent ou bloqué, utilisez l' onglet Détails de l'exécution pour accéder à davantage d' informations sur le job et identifier l'étape ou le nœud de calcul à l'origine du goulot d'étranglement.

Identifier la cause principale

  1. Vérifiez si le job rencontre des problèmes lors du démarrage du nœud de calcul. Pour en savoir plus, consultez Erreur lors de la synchronisation du pod.

    Pour vérifier que le job a commencé à traiter les données, recherchez l'entrée de journal suivante dans le journal des messages du job :

    All workers have finished the startup processes and began to receive work requests
    
  2. Pour comparer les performances de différents jobs, assurez-vous que le volume de données d'entrée, la configuration des nœuds de calcul, le comportement d'autoscaling et les paramètres de Dataflow Shuffle sont identiques.

  3. Consultez les journaux des messages du job-message pour détecter des problèmes tels que des limites de quota, des problèmes de rupture de stock ou une épuisement des adresses IP.

  4. Dans l'onglet Détails de l'exécution, comparez la progression des étapes pour identifier celles qui ont pris plus de temps.

  5. Recherchez les retardataires dans le job. Pour en savoir plus, consultez Résoudre les problèmes liés aux retardataires dans les jobs par lot.

  6. Vérifiez les métriques de débit, d'utilisation du processeur et de la mémoire.

  7. Recherchez les avertissements et les erreurs dans les journaux des nœuds de calcul.

  8. Recherchez les clés chaudes.

  9. Si vous n'utilisez pas Dataflow Shuffle, recherchez les avertissements et les erreurs dans les journaux du shuffler lors de l'opération de shuffle. Si vous voyez une erreur de délai d'attente RPC sur le port 12345 ou 12346, il est possible qu'il manque une règle de pare-feu à votre job. Consultez la section Règles de pare-feu pour Dataflow.

  10. Si Runner v2 est activé, recherchez les erreurs dans les journaux du harnais. Pour en savoir plus, consultez Résoudre les problèmes liés à Runner v2.

Identifier les retardataires

Un retardataire est un élément de travail lent par rapport aux autres éléments de travail de l'étape. Pour en savoir plus sur l'identification et la correction des retardataires, consultez la page Résoudre les problèmes de retardataires dans les jobs par lot.

Identifier les étapes lentes ou bloquées

Pour identifier les étapes lentes ou bloquées, utilisez la vue Progression des étapes. Les barres plus longues indiquent que l'étape prend plus de temps. Utilisez cette vue pour identifier les étapes les plus lentes de votre pipeline.

Une fois que vous avez trouvé l'étape goulot d'étranglement, vous pouvez effectuer les étapes suivantes :

  • Identifiez le nœud de calcul retardataire dans cette étape.
  • S'il n'y a pas de nœuds de calcul retardataires, identifiez l'étape la plus lente à l'aide du panneau Informations sur l'étape. Utilisez ces informations pour identifier les candidats à l'optimisation du code utilisateur.

Identifier un nœud de calcul lent

Pour identifier un nœud de calcul lent pour une étape spécifique, utilisez la vue Progression du nœud de calcul. Cette vue indique si tous les nœuds de calcul traitent le travail jusqu'à la fin de l'étape ou si un seul nœud de calcul est bloqué sur une tâche retardataire. Si vous trouvez un nœud de calcul retardataire, procédez comme suit :

Outils de débogage

Lorsque votre pipeline est lent ou bloqué, les outils suivants peuvent vous aider à diagnostiquer le problème.

Pour obtenir des métriques supplémentaires qui ne sont pas incluses dans l'interface Web de surveillance Dataflow, consultez la liste complète des métriques Dataflow dans Google Cloud Métriques.