Auf dieser Seite werden häufige Ursachen für Verzögerungen bei der Planung von Dataproc-Jobs aufgeführt. Außerdem finden Sie hier Informationen, die Ihnen helfen können, diese zu vermeiden.
Übersicht
Im Folgenden sind die häufigsten Gründe für Verzögerungen (Drosselung) bei Dataproc-Jobs aufgeführt:
- Zu viele aktive Jobs
- Hohe Arbeitsspeichernutzung des Systems
- Nicht genügend freier Speicher
- Ratenbegrenzung wurde überschritten
Normalerweise wird die Meldung zur Jobverzögerung im folgenden Format ausgegeben:
Awaiting execution [SCHEDULER_MESSAGE]"
In den folgenden Abschnitten finden Sie mögliche Ursachen und Lösungen für bestimmte Szenarien, in denen es zu Verzögerungen bei Jobs kommt.
Zu viele aktive Jobs
Planernachricht:
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 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 1 Job pro GB.
Beispiel: Der Maschinentyp n1-standard-4
hat 15GB
Arbeitsspeicher. Nachdem 3.5GB
für Gemeinkosten reserviert wurde, bleiben 11.5GB
übrig. Abgerundet auf eine Ganzzahl ist 11GB
für bis zu 11 gleichzeitige Jobs verfügbar.
Lösungen:
Überwachen Sie Log-Messwerte wie CPU- und Arbeitsspeichernutzung, um die Jobanforderungen zu schätzen.
Wenn Sie einen Jobcluster erstellen, gilt Folgendes:
Verwenden Sie für die Master-VM des Clusters einen Maschinentyp mit mehr Arbeitsspeicher.
Wenn
1GB
pro Job mehr ist, als Sie benötigen, legen Sie diedataproc:dataproc.scheduler.driver-size-mb
-Clustereigenschaft auf einen Wert unter1024
fest.Legen Sie das Clusterattribut
dataproc:dataproc.scheduler.max-concurrent-jobs
auf einen Wert fest, der Ihren Jobanforderungen entspricht.
Viel Systemspeicher oder nicht genügend freier Speicher
Planernachricht:
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 Speichernutzung 90 % erreicht (0.9)
). Wenn dieser Grenzwert erreicht ist, 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, gilt Folgendes:
- Erhöhen Sie den Wert des Clusterattributs
dataproc:dataproc.scheduler.max-memory-used
. Legen Sie ihn beispielsweise über dem Standardwert0.90
auf0.95
fest. - Erhöhen Sie den Wert des Clusterattributs
dataproc.scheduler.min-free-memory.mb
. Der Standardwert ist256
MB.
- Erhöhen Sie den Wert des Clusterattributs
Job-Ratenlimit überschritten
Planernachricht:
Throttling job xxx__JOBID___xxx (and maybe others): Rate limit
Ursachen:
Der Dataproc-Agent hat das Limit für die Job-Einreichungsrate erreicht.
Lösungen:
- Standardmäßig ist die Jobübermittlung durch den Dataproc-Agent auf
1.0 QPS
begrenzt. Sie können einen anderen Wert festlegen, wenn Sie einen Cluster mit demdataproc:dataproc.scheduler.job-submission-rate
-Clusterattribut erstellen.
Jobstatus ansehen
Informationen zum Aufrufen des Jobstatus und der Jobdetails finden Sie unter Monitoring und Fehlerbehebung für Jobs.