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 Systemspeichernutzung
- Nicht genügend freier Arbeitsspeicher
- Ratenbegrenzung wurde überschritten
Die Nachricht zur Verzögerung des Jobs hat in der Regel das folgende Format:
Awaiting execution [SCHEDULER_MESSAGE]"
In den folgenden Abschnitten werden mögliche Ursachen und Lösungen für bestimmte Szenarien mit Verzögerungen bei Jobs beschrieben.
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, die auf dem Arbeitsspeicher der Master-VM basieren, wird überschritten (der Job-Treiber wird auf der Master-VM des Dataproc-Clusters ausgeführt). Standardmäßig reserviert Dataproc 3,5 GB Arbeitsspeicher für Anwendungen und erlaubt einen 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 Protokollmesswerte wie CPU-Nutzung und Arbeitsspeicher, um die Jobanforderungen zu schätzen.
Wenn Sie einen Jobcluster erstellen, gilt Folgendes:
Verwenden Sie für die Cluster-Master-VM einen Maschinentyp mit mehr Arbeitsspeicher.
Wenn
1GB
pro Job mehr ist, als Sie benötigen, legen Sie für die Cluster-Propertydataproc:dataproc.scheduler.driver-size-mb
einen Wert unter1024
fest.Legen Sie für das Clusterattribut
dataproc:dataproc.scheduler.max-concurrent-jobs
einen Wert fest, 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 Jobeinreichung, wenn die Speichernutzung 90% (0.9)
) erreicht. Wenn dieses Limit erreicht wird, können keine neuen Jobs geplant werden.
Der freie Arbeitsspeicher, der zum Planen eines weiteren Jobs im Cluster erforderlich ist, reicht nicht aus.
Lösung:
Wenn Sie einen Cluster erstellen, geschieht Folgendes:
- Erhöhen Sie den Wert des
dataproc:dataproc.scheduler.max-memory-used
-Clusterattributs. Legen Sie ihn beispielsweise über dem Standardwert von0.90
auf0.95
fest. - Erhöhen Sie den Wert des
dataproc.scheduler.min-free-memory.mb
-Clusterattributs. Der Standardwert ist256
MB.
- Erhöhen Sie den Wert des
Job-Frequenzlimit überschritten
Nachricht des Planers:
Throttling job xxx__JOBID___xxx (and maybe others): Rate limit
Ursachen:
Der Dataproc-Agent hat die maximale Rate für die Jobeinreichung erreicht.
Lösungen:
- 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 derdataproc:dataproc.scheduler.job-submission-rate
-Clustereigenschaft erstellen.
Jobstatus ansehen
Informationen zum Jobstatus und zu den Jobdetails finden Sie unter Monitoring und Fehlerbehebung für Jobs.