Fehlerbehebung bei Nachzüglern in Batchjobs

Nachzügler sind Arbeitsaufgaben, die Ihre Jobs verlangsamen, da sie die parallele Ausführung von Arbeitsschritten verhindern.

Ein Nachzügler ist eine Arbeitsaufgabe mit den folgenden Eigenschaften:

  • Der Abschluss dauert deutlich länger als andere Arbeitsaufgaben in der gleichen Phase.
  • Er reduziert die Parallelität innerhalb der Phase.
  • Der Start neuer Aufgaben wird verhindert.

Im schlimmsten Fall blockiert ein Nachzügler eine Phase am Abschluss, da ein kleiner Prozentsatz der Aufgabe ausgeführt wird. Dies führt zu Gesamtverzögerungen bei dem Job.

Dataflow erkennt Nachzügler, die während Batchjobs auftreten. Wenn Dataflow einen Nachzügler erkennt, versucht es auch, die Ursache des Nachzüglers zu ermitteln.

Nachzügler auf der Dataflow-Monitoring-Oberfläche ansehen

Nachdem Sie einen Dataflow-Job gestartet haben, können Sie mit der Google Cloud Console alle erkannten Nachzügler aufrufen.

Sie können Nachzügler entweder nach Phase oder nach Workern anzeigen. Verwenden Sie diese Ansichten, um zu ermitteln, welche Phasen Nachzügler haben, und ermitteln Sie dann die Worker, in denen Nachzügler in jeder Phase aufgetreten sind.

Nachzügler nach Phase ansehen

So rufen Sie Nachzügler nach Phase auf:

  1. Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.

    Zu Jobs

  2. Klicken Sie auf den Namen des Jobs.

  3. Klicken Sie auf der Seite mit den Jobdetails auf den Tab Ausführungsdetails.

  4. Wählen Sie in der Liste Grafikansicht die Option Phasenfortschritt aus. Die Fortschrittsgrafik zeigt die aggregierte Anzahl aller Nachzügler in jeder Phase.

  5. Wenn Sie sich Details zu einer Phase ansehen möchten, bewegen Sie den Mauszeiger über den Balken für eine Phase. Wenn Sie die Worker der Phase aufrufen möchten, klicken Sie im Detailbereich auf Worker ansehen.

Nachzügler nach Worker ansehen

So zeigen Sie Nachfolger nach Workern an:

  1. Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.

    Zu Jobs

  2. Klicken Sie auf den Namen des Jobs.

  3. Klicken Sie auf der Seite mit den Jobdetails auf den Tab Ausführungsdetails.

  4. Wählen Sie in der Liste Grafikansicht die Option Worker-Fortschritt aus.

  5. Wählen Sie in der Liste Worker nach Phase filtern die Phase aus. Im Fortschrittsdiagramm werden alle für diese Phase erkannten Nachzügler angezeigt. Die Säule hat eine dunklere Schattierung an dem Punkt, an dem der Nachzügler erstmals erkannt wurde.

  6. Wenn Sie Details zu einem Worker aufrufen möchten, bewegen Sie den Mauszeiger auf den Balken dieses Workers.

Im Bereich Phaseninformationen werden im Abschnitt Nachzüglerdetails die Nachzügler für alle auf der Seite angezeigten Worker aufgelistet. Dabei werden folgende Informationen angezeigt:

  • Die Startzeit, zu der der Nachzügler gefunden wurde.
  • Der Worker, der den Nachzügler beobachtet hat.
  • Die Ursache, falls bekannt.

Probleme mit Nachzüglern beheben

Dataflow erkennt die folgenden Ursachen für Nachzügler:

Fehlerbehebung bei Nachzüglern, die durch „heiße” Schlüssel verursacht werden

Verschiedene Faktoren können Nachzügler verursachen. Eine häufige Ursache ist das Vorhandensein einer Tastenkombination. Ein „heißer” Schlüssel ist ein Schlüssel, der deutlich mehr Elemente als andere Schlüssel im selben PCollection darstellt. „Heiße” Schlüssel können Nachzügler erstellen, da sie die Möglichkeit von Dataflow einschränken, Elemente parallel zu verarbeiten.

Wenn Dataflow einen Nachzügler durch einen „heißen” Schlüssel erkennt, wird im Bereich Nachzüglerdetails Hot Key als Ursache aufgeführt.

Standardmäßig zeigt Dataflow den Schlüsselwert des „heißen” Schlüssels nicht an. Legen Sie die Pipelineoption hotKeyLoggingEnabled auf true fest, wenn Sie den Job ausführen, um den Schlüsselwert aufzurufen.

Prüfen Sie zur Behebung dieses Problems, ob Ihre Daten gleichmäßig verteilt sind. Wenn ein Schlüssel unverhältnismäßig viele Werte enthält, sollten Sie die folgenden Vorgehensweisen berücksichtigen:

Nächste Schritte