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:
Überwachen Sie Logmesswerte wie CPU-Nutzung und Arbeitsspeicher, um Jobanforderungen abzuschätzen.
Wenn Sie einen Jobcluster erstellen:
Verwenden Sie für die Cluster-Master-VM einen Maschinentyp mit mehr Arbeitsspeicher.
Wenn die
1GB
pro Job mehr als erforderlich sind, legen Siedataproc:dataproc.scheduler.driver-size-mb
Clusterattribut auf weniger als1024
.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:
Wenn Sie einen Cluster erstellen:
- Erhöhen Sie den Wert der
dataproc:dataproc.scheduler.max-memory-used
Clusterattribut. Legen Sie ihn beispielsweise über dem Standardwert0.90
auf0.95
fest. - Erhöhen Sie den Wert der
dataproc.scheduler.min-free-memory.mb
Clusterattribut. Der Standardwert ist256
MB.
- Erhöhen Sie den Wert der
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:
- 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 demdataproc:dataproc.scheduler.job-submission-rate
Clusterattribut.
Jobstatus ansehen.
Informationen zum Jobstatus und zu den Jobdetails finden Sie unter Monitoring und Fehlerbehebung für Jobs.