
Utilisez le détecteur de goulots d'étranglement Dataflow pour diagnostiquer les blocages de progression et optimiser les performances des pipelines dans vos jobs de traitement en flux continu Dataflow. Le détecteur met automatiquement en évidence les composants de vos pipelines de données qui limitent le débit et provoquent des retards.
En identifiant l'emplacement exact et la cause probable des retards d'exécution, le détecteur de goulots d'étranglement vous permet de résoudre les problèmes liés aux pipelines de traitement en flux continu Apache Beam complexes sans avoir à procéder par essais et erreurs.
Fonctionnement de la détection des goulots d'étranglement
Les pipelines de traitement en flux continu se composent généralement d'une séquence d'étapes connectées par des files d'attente. Les données circulent de manière séquentielle depuis les sources en amont, en passant par des transformations intermédiaires, jusqu'aux récepteurs en aval.
Dans de nombreux pipelines, le débit global est limité par un seul composant ou
étape, ce qui crée un goulot d'étranglement ou un ralentissement de la progression du job. Si un composant en aval ne peut pas traiter les données aussi rapidement qu'un composant en amont, la file d'attente entre eux commence à se remplir. Par exemple, si un composant de brassage de flux en amont produit des données plus rapidement qu'un DoFn défini par l'utilisateur en aval, la file d'attente se remplit.
Au fil du temps, ce délai affecte toutes les étapes d'un pipeline. Le retard augmente en amont, ce qui limite à terme le débit auquel le pipeline peut ingérer et traiter les entrées de la source d'origine. Ce comportement est appelé propagation du retard.
Lorsque la propagation du retard se produit, plusieurs étapes du pipeline peuvent sembler défectueuses ou lentes, même si une seule étape est à l'origine de la contrainte sous-jacente. Le détecteur de goulots d'étranglement surveille en permanence les retards d'exécution dans tous les composants, y compris les suivants :
- Brassages de flux
- Fonctions définies par l'utilisateur (threads
DoFn) - Commits d'état persistant
Lorsqu'un composant subit un délai de traitement de plus de cinq minutes, le détecteur de goulots d'étranglement Dataflow l'enregistre comme un goulot d'étranglement. Il met en évidence l'étape dans le graphique d'exécution du job et fournit des informations de diagnostic détaillées.
Types de goulots d'étranglement

Lorsqu'un goulot d'étranglement est actif, le détecteur de goulots d'étranglement le classe dans l'un des états suivants :
- Le traitement est bloqué et ne progresse pas : la progression du pipeline est complètement arrêtée à l'étape concernée.
- Le traitement est en cours, mais il est en retard : l'étape actuelle fonctionne, mais ne peut pas traiter les données entrantes aussi rapidement qu'elles arrivent, ce qui entraîne un retard croissant.
- Le traitement est en cours, mais le nombre d'éléments en attente reste stable : l'étape traite les données à un débit égal au débit entrant. Le retard n'augmente pas, mais il reste élevé.
- Le traitement est en cours et rattrape le retard accumulé : l'étape efface correctement le retard. Si vous démarrez un pipeline avec un retard existant, cet état est normal et ne nécessite aucune intervention.
Pour en savoir plus sur l'affichage des diagnostics du détecteur de goulots d'étranglement et sur la manière de les résoudre, consultez Détecter et résoudre les goulots d'étranglement.
Étape suivante
- Découvrez comment détecter et résoudre les goulots d'étranglement des pipelines Dataflow.
- Consultez Résoudre les problèmes liés aux jobs de traitement en flux continu lents ou bloqués.
- Pour un profilage avancé des performances, consultez Surveiller les performances des pipelines à l'aide de Cloud Profiler.