Fehlerbehebung bei Verzögerungen bei Jobs

Auf dieser Seite werden häufige Ursachen für Verzögerungen bei der Planung von Dataproc-Jobs aufgeführt. mit Informationen, die Ihnen dabei helfen können, sie zu vermeiden.

Übersicht

Häufige Gründe für Verzögerungen bei Dataproc-Jobs (gedrosselt):

  • Zu viele laufende Jobs
  • Hohe Auslastung des Systemspeichers
  • Nicht genügend freier Arbeitsspeicher
  • Ratenbegrenzung wurde überschritten

In der Regel wird die Jobverzögerungsnachricht im folgenden Format ausgegeben:

Awaiting execution [SCHEDULER_MESSAGE]"

In den folgenden Abschnitten finden Sie mögliche Ursachen und Lösungen für bestimmte und Jobverzögerungen.

Zu viele laufende Jobs

Nachricht des Planers:

Throttling job ### (and maybe others): Too many running jobs (current=xx max=xx)

Ursachen:

Die maximale Anzahl gleichzeitiger Jobs basierend auf dem Arbeitsspeicher der Master-VM wurde überschritten (der Jobtreiber auf der Dataproc-Cluster-Master-VM ausgeführt wird). Standardmäßig reserviert Dataproc 3, 5 GB Arbeitsspeicher für Anwendungen, und ermöglicht 1 Job pro GB.

Beispiel: Der Maschinentyp n1-standard-4 hat 15GB Arbeitsspeicher. Mit 3.5GB für Aufwand reserviert, Noch 11.5GB. 11GB kann für bis zu 11 gleichzeitige Jobs auf eine Ganzzahl abgerundet werden.

Lösungen:

  1. Überwachen Sie Protokollmesswerte wie CPU-Nutzung und Arbeitsspeicher, um die Jobanforderungen zu schätzen.

  2. Wenn Sie einen Jobcluster erstellen:

    1. Verwenden Sie für die Cluster-Master-VM einen Maschinentyp mit größerem Arbeitsspeicher.

    2. Wenn 1GB pro Job mehr als erforderlich ist, legen Sie den Parameter dataproc:dataproc.scheduler.driver-size-mb Clusterattribut auf weniger als 1024.

    3. dataproc:dataproc.scheduler.max-concurrent-jobs festlegen Clusterattribut auf einen Wert, der Ihren Jobanforderungen entspricht.

Großer Systemspeicher oder nicht genügend freier Speicher

Nachricht des Planers:

Throttling job xxx_____JOBID_____xxx (and maybe others): High system memory usage (current=xx%)

Throttling job xxx_____JOBID_____xxx (and maybe others): Not enough free memory (current=xx min=xx)

Ursachen:

Standardmäßig drosselt der Dataproc-Agent die Jobübermittlung, wenn Die Arbeitsspeichernutzung erreicht 90% (0.9)). Wenn dieses Limit erreicht ist, können keine neuen Jobs geplant.

Die Menge an freiem Arbeitsspeicher, die zum Planen eines anderen Jobs im Cluster erforderlich ist ist nicht ausreichend.

Lösung:

  1. Wenn Sie einen Cluster erstellen, geschieht Folgendes:

    1. Erhöhen Sie den Wert der dataproc:dataproc.scheduler.max-memory-used Clusterattribut. Legen Sie ihn beispielsweise über dem Standardwert 0.90 auf 0.95 fest.
    2. Erhöhen Sie den Wert der dataproc.scheduler.min-free-memory.mb Clusterattribut. Der Standardwert ist 256 MB.

Job-Frequenzlimit überschritten

Nachricht des Planers:

Throttling job xxx__JOBID___xxx (and maybe others): Rate limit

Ursachen:

Der Dataproc-Agent hat das Limit für die Übertragungsrate von Jobs erreicht.

Lösungen:

  1. Standardmäßig ist die Einreichung von Dataproc-Agent-Jobs auf 1.0 QPS begrenzt. Sie können einen anderen Wert festlegen, wenn Sie einen Cluster mit der dataproc:dataproc.scheduler.job-submission-rate-Clustereigenschaft erstellen.

Jobstatus ansehen.

Informationen zum Anzeigen des Jobstatus und von Details finden Sie unter Monitoring und Fehlerbehebung für Jobs.