Dataflow-Engpasserkennung

Engpasserkennung in der Konsole aufgrund von Vorgängen mit langer Verarbeitungszeit.

Mit dem Dataflow-Engpassdetektor können Sie Fortschrittsblockaden diagnostizieren und die Pipelineleistung in Ihren Dataflow-Streamingjobs optimieren. Der Detektor hebt automatisch Komponenten in Ihren Datenpipelines hervor, die den Durchsatz begrenzen und Rückstände verursachen.

Durch die Identifizierung des genauen Standorts und der wahrscheinlichen Ursache von Ausführungsverzögerungen können Sie mit dem Engpassdetektor komplexe Apache Beam-Streamingpipelines ohne Raten und Ausprobieren beheben.

Funktionsweise der Engpasserkennung

Streamingpipelines bestehen in der Regel aus einer Abfolge von Schritten, die durch Warteschlangen verbunden sind. Die Daten fließen sequenziell von Upstream-Quellen über Transformationen in der Mitte zu Downstream-Senken.

In vielen Pipelines wird der Gesamtdurchsatz durch eine einzelne Komponente oder einen Schritt begrenzt, wodurch ein Engpass oder eine Verlangsamung des Jobfortschritts entsteht. Wenn eine Downstream-Komponente Daten nicht so schnell verarbeiten kann, wie eine Upstream-Komponente Daten erzeugt, füllt sich die Warteschlange zwischen ihnen. Wenn beispielsweise eine Upstream-Streaming-Shuffle-Komponente Daten schneller erzeugt, als eine langsame benutzerdefinierte DoFn-Funktion die Daten verarbeiten kann, füllt sich die Warteschlange.

Mit der Zeit wirkt sich diese Verzögerung auf alle Schritte in einer Pipeline aus. Der Rückstand nimmt Upstream zu und begrenzt schließlich die Geschwindigkeit, mit der die Pipeline Eingaben aus der ursprünglichen Quelle aufnehmen und verarbeiten kann. Dieses Verhalten wird als Rückstandsverbreitung bezeichnet.

Bei der Rückstandsverbreitung können mehrere Phasen der Pipeline fehlerhaft oder langsam erscheinen, obwohl nur ein einziger Schritt die zugrunde liegende Einschränkung verursacht. Der Engpassdetektor überwacht kontinuierlich Ausführungsverzögerungen in allen Komponenten, einschließlich der folgenden:

  • Streaming-Shuffles
  • Benutzerdefinierte Funktionen (DoFn-Threads)
  • Persistente Status-Commits

Wenn bei einer Komponente eine Verarbeitungsverzögerung von mehr als fünf Minuten auftritt, registriert der Dataflow-Engpassdetektor sie als Engpass. Er hebt den Schritt in der Jobausführungsgrafik hervor und liefert detaillierte Diagnoseinformationen.

Arten von Engpässen

Engpasserkennung in der Konsole aufgrund von „heißen“ Schlüsseln oder unzureichender Schlüsselparallelität.

Wenn ein Engpass aktiv ist, klassifiziert der Engpassdetektor ihn in einen der folgenden Status:

  • Verarbeitung hängt und macht keinen Fortschritt: Der Fortschritt der Pipeline ist beim betroffenen Schritt vollständig angehalten.
  • Verarbeitung läuft, gerät aber in Verzug: Der aktuelle Schritt funktioniert, kann aber eingehende Daten nicht so schnell verarbeiten, wie sie eintreffen, was zu einem wachsenden Rückstand führt.
  • Verarbeitung läuft, aber Rückstand bleibt unverändert: Der Schritt verarbeitet Daten mit einer Geschwindigkeit, die der Eingangsrate entspricht. Der Rückstand nimmt nicht zu, bleibt aber erhöht.
  • Verarbeitung läuft und holt Rückstand auf: Der Schritt beseitigt den Rückstand erfolgreich. Wenn Sie eine Pipeline mit einem vorhandenen Rückstand starten, ist dieser Status normal und erfordert keine Maßnahmen.

Weitere Informationen zum Aufrufen von Diagnosen des Engpassdetektors und zum Beheben von Engpässen finden Sie unter Engpässe erkennen und beheben.

Nächste Schritte

  • Informationen zum Erkennen und Beheben von Engpässen in Dataflow-Pipelines .
  • Informationen zur Fehlerbehebung bei langsamen oder hängenden Streamingjobs
  • Informationen zum erweiterten Leistungs-Profiling finden Sie unter Pipelineleistung mit Cloud Profiler überwachen.