Verzögerungen bei Jobs beheben

Auf dieser Seite werden häufige Ursachen für Verzögerungen bei der Jobplanung in Dataproc aufgeführt. Außerdem finden Sie Informationen, mit denen Sie diese vermeiden können.

Übersicht

Im Folgenden sind häufige Gründe für Verzögerungen (Drosselung) bei Dataproc-Jobs aufgeführt:

  • 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. Da 3.5GB für den Overhead reserviert ist, bleiben 11.5GB übrig. Gerundet auf eine Ganzzahl ist 11GB für bis zu 11 gleichzeitige Jobs verfügbar.

Lösungen:

  1. Überwachen Sie Logmesswerte wie CPU-Nutzung und Arbeitsspeicher, um Jobanforderungen abzuschätzen.

  2. Wenn Sie einen Jobcluster erstellen:

    1. Verwenden Sie für die Cluster-Master-VM einen Maschinentyp mit mehr Arbeitsspeicher.

    2. Wenn die 1GB pro Job mehr als erforderlich sind, legen Sie 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.

Zu viel Systemspeicher oder nicht genügend freier Arbeitsspeicher

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:

    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.

Ratenlimit für Job überschritten

Nachricht des Planers:

Throttling job xxx__JOBID___xxx (and maybe others): Rate limit

Ursachen:

Der Dataproc-Agent hat das Limit für die Häufigkeit der Jobeinreichung erreicht.

Lösungen:

  1. Standardmäßig ist das Senden von Jobs des Dataproc-Agents auf 1.0 QPS, den Sie beim Erstellen eines Clusters auf einen anderen Wert festlegen können mit dem dataproc:dataproc.scheduler.job-submission-rate Clusterattribut.

Jobstatus ansehen.

Informationen zum Jobstatus und zu den Jobdetails finden Sie unter Monitoring und Fehlerbehebung für Jobs.