Fehlerbehebung bei langsamen oder hängenden Batchjobs

Auf dieser Seite wird erläutert, wie Sie häufige Ursachen von langsamen oder hängenden Dataflow-Batchjobs beheben können.

Wenn der Batchjob langsam läuft oder hängen geblieben ist, verwenden Sie den Tab **Ausführungsdetails**, um weitere Informationen zum Job zu erhalten und die Phase oder den Worker zu ermitteln, der den Engpass verursacht.

Ursache ermitteln

  1. Prüfen Sie, ob beim Starten des Workers Probleme auftreten. Weitere Informationen finden Sie unter Fehler beim Synchronisieren des Pods.

    Wenn Sie prüfen möchten, ob die Datenverarbeitung für den Job gestartet wurde, suchen Sie im Job-Nachrichten-Log nach dem folgenden Logeintrag:

    All workers have finished the startup processes and began to receive work requests
    
  2. Wenn Sie die Jobleistung zwischen verschiedenen Jobs vergleichen möchten, müssen das Volumen der Eingabedaten, die Worker-Konfiguration, das Autoscaling-Verhalten und Dataflow Shuffle-Einstellungen identisch sein.

  3. Prüfen Sie die Job-Nachrichten-Logs auf Probleme wie Kontingentlimits, Probleme mit der Verfügbarkeit oder die Erschöpfung von IP-Adressen.

  4. Vergleichen Sie auf dem Tab Ausführungsdetails den Phasenfortschritt, um Phasen zu identifizieren, die länger gedauert haben.

  5. Suchen Sie im Job nach Nachzüglern. Weitere Informationen finden Sie unter Fehlerbehebung bei Nachzüglern in Batchjobs.

  6. Prüfen Sie die Messwerte für Durchsatz, CPU- und Arbeitsspeichernutzung.

  7. Prüfen Sie die Worker-Logs auf Warnungen und Fehler.

  8. Prüfen Sie, ob Hotkeys vorhanden sind.

  9. Wenn Sie Dataflow Shuffle nicht verwenden, prüfen Sie die Shuffler-Logs auf Warnungen und Fehler während des Shuffle-Vorgangs. Wenn ein RPC-Zeitüberschreitungsfehler an Port 12345 oder 12346 auftritt, fehlt Ihrem Job möglicherweise eine Firewallregel. Weitere Informationen finden Sie unter Firewallregeln für Dataflow.

  10. Wenn der Portable Runner aktiviert ist, prüfen Sie die Harness Logs auf Fehler. Weitere Informationen finden Sie unter Fehlerbehebung beim Portable Runner.

Nachzügler identifizieren

Ein Nachzügler ist ein Arbeitselement, das relativ zu anderen Arbeitselementen in der Phase langsam ist. Informationen zum Identifizieren und Korrigieren von Nachzüglern finden Sie unter Fehlerbehebung bei Nachzüglern in Batchjobs.

Langsame oder hängende Phasen identifizieren

Verwenden Sie die Ansicht Phasenfortschritt, um langsame oder hängende Phasen zu ermitteln. Längere Balken weisen darauf hin, dass die Phase länger dauert. Verwenden Sie diese Ansicht, um die langsamsten Phasen in Ihrer Pipeline zu ermitteln.

Nachdem Sie die Engpassphase gefunden haben, können Sie die folgenden Schritte ausführen:

  • Identifizieren Sie den verzögerten Worker in der Phase.
  • Wenn keine verzögerten Worker vorhanden sind, identifizieren Sie den langsamsten Schritt über den Bereich Phaseninformationen. Verwenden Sie diese Informationen, um Kandidaten für die Optimierung von Nutzercode zu identifizieren.

Späte Worker erkennen

Verwenden Sie die Ansicht Worker-Fortschritt, um einen verzögerten Worker für eine bestimmte Phase zu identifizieren. Diese Ansicht zeigt, ob alle Worker die Arbeit bis zum Ende der Phase verarbeiten oder ob ein einzelner Worker bei einer verzögerten Aufgabe festhängt. Wenn Sie einen verzögerten Worker finden, führen Sie die folgenden Schritte aus:

Tools zur Fehlerbehebung

Wenn Sie eine langsame oder hängende Pipeline haben, können Sie mit den folgenden Tools versuchen, das Problem zu diagnostizieren.

Weitere Messwerte, die nicht in der Dataflow -Monitoring-Weboberfläche enthalten sind, finden Sie in der vollständigen Liste der Dataflow-Messwerte unter Google Cloud Messwerte.