Auf dieser Seite erfahren Sie, wie Sie Probleme mit Batch beheben.
Wenn Sie die Fehlerbehebung für einen Job durchführen möchten, für den Sie keine Fehlermeldung haben, prüfen Sie, ob der Jobverlauf Fehlermeldungen enthält. Sehen Sie sich dazu die Statusereignisse an. Sehen Sie sich dann dieses Dokument an.
Weitere Informationen zur Fehlerbehebung bei Jobs finden Sie in den folgenden Dokumenten:
Fehler beim Erstellen von Jobs
Wenn Sie keinen Job erstellen können, liegt dies möglicherweise an einem der Fehler in diesem Abschnitt.
Unzureichendes Kontingent
Problem
Beim Erstellen eines Jobs tritt eines der folgenden Probleme auf:
Wenn der Job den Status
QUEUED
hat, wird im FeldstatusEvents
das folgende Problem angezeigt:Quota checking process decides to delay scheduling for the job JOB_UID due to inadequate quotas [Quota: QUOTA_NAME, limit: QUOTA_LIMIT, usage: QUOTA_CURRENT_USAGE, wanted: WANTED_QUOTA.].
Dieses Problem weist darauf hin, dass der Job verzögert wurde, weil die aktuelle Auslastung (
QUOTA_USAGE
) und das Limit (QUOTA_LIMIT
) desQUOTA_NAME
-Kontingents die angeforderte Auslastung (WANT_QUOTA
) des Jobs verhindert haben.Wenn der Job den Status
QUEUED
,SCHEDULED
oderFAILED
hat, wird im FeldstatusEvents
eines der folgenden Probleme angezeigt:RESOURCE_NAME creation failed: Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in region REGION
RESOURCE_NAME creation failed: Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in zone ZONE
Dieses Problem weist darauf hin, dass das Erstellen einer Ressource fehlgeschlagen ist, weil die Anfrage Ihr
QUOTA_NAME
-Kontingent überschritten hat, das am angegebenen Standort ein Limit vonQUOTA_LIMIT
hat.
Lösung
So beheben Sie das Problem:
Wenn der Job verzögert wurde, warten Sie, bis mehr Kontingent freigegeben wird.
Wenn der Job aufgrund eines unzureichenden Kontingents fehlgeschlagen ist oder diese Verzögerungen andauern, können Sie Folgendes tun, um ein unzureichendes Kontingent zu vermeiden:
Erstellen Sie Jobs, die weniger von diesem oder einem anderen Kontingent verbrauchen. Sie können beispielsweise einen anderen zulässigen Speicherort oder Ressourcentyp für den Job angeben oder die Kontingentnutzung auf weitere Projekte aufteilen.
Fordern Sie bei Google Cloudein höheres Kontingentlimit für Ihr Projekt an.
Weitere Informationen finden Sie unter Kontingente und Limits für Batch-Aufträge und Mit Kontingenten arbeiten.
Unzureichende Berechtigungen, um als Dienstkonto zu fungieren
Problem
Das folgende Problem tritt auf, wenn Sie versuchen, einen Job zu erstellen:
Wenn für den Job keine Instanzvorlage verwendet wird, sieht das Problem so aus:
caller does not have access to act as the specified service account: SERVICE_ACCOUNT_NAME
Wenn für den Job eine Instanzvorlage verwendet wird, sieht das Problem so aus:
Error: code - CODE_SERVICE_ACCOUNT_MISMATCH, description - The service account specified in the instance template INSTANCE_TEMPLATE_SERVICE_ACCOUNT doesn't match the service account specified in the job JOB_SERVICE_ACCOUNT for JOB_UID, project PROJECT_NUMBER
Dieses Problem tritt in der Regel auf, wenn der Nutzer, der den Job erstellt, nicht über ausreichende Berechtigungen verfügt, um als das vom Job verwendete Dienstkonto zu agieren. Dies wird durch die Berechtigung iam.serviceAccounts.actAs
gesteuert.
Lösung
So beheben Sie das Problem:
- Wenn für den Job eine Instanzvorlage verwendet wird, prüfen Sie, ob das in der Instanzvorlage angegebene Dienstkonto mit dem in der Jobdefinition angegebenen Dienstkonto übereinstimmt.
- Achten Sie darauf, dass dem Nutzer, der den Job erstellt, die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser
) für das für den Job angegebene Dienstkonto zugewiesen wurde. Weitere Informationen finden Sie unter Zugriff verwalten. - Erstellen Sie den Job neu.
Wiederholte Netzwerke
Problem
Das folgende Problem tritt auf, wenn Sie versuchen, einen Job zu erstellen:
Networks must be distinct for NICs in the same InstanceTemplate
Dieses Problem tritt auf, weil Sie das Netzwerk für einen Job mehrmals angegeben haben.
Lösung
Erstellen Sie den Job noch einmal und geben Sie das Netzwerk mit einer der folgenden Optionen an, um das Problem zu beheben:
- VM-Instanzvorlage:Wenn Sie beim Erstellen dieses Jobs eine VM-Instanzvorlage verwenden möchten, müssen Sie das Netzwerk in der VM-Instanzvorlage angeben.
- Felder
network
undsubnetwork
:Diese Felder können im Anfragetext verwendet werden, wenn Sie einen Job mit der Batch API erstellen, oder in der JSON-Konfigurationsdatei, wenn Sie einen Job mit der gcloud CLI erstellen. --network
- und--subnetwork
-Flags:Diese Flags können mit dem Befehlgcloud batch jobs submit
verwendet werden, wenn Sie einen Job mit der gcloud CLI erstellen.
Weitere Informationen finden Sie unter Netzwerk für einen Job angeben.
Ungültiges Netzwerk für VPC Service Controls
Problem
Das folgende Problem tritt auf, wenn Sie versuchen, einen Job zu erstellen:
no_external_ip_address field is invalid. VPC Service Controls is enabled for the project, so external ip address must be disabled for the job. Please set no_external_ip_address field to be true
Lösung
Dieses Problem tritt auf, weil Sie versuchen, einen Job mit VMs zu erstellen und auszuführen, die externe IP-Adressen in einem VPC Service Controls-Dienstperimeter haben.
Um das Problem zu beheben, erstellen Sie einen Job, der den externen Zugriff für alle VMs blockiert.
Weitere Informationen zum Konfigurieren der Netzwerkumgebung für einen Job in einem VPC Service Controls-Dienstperimeter finden Sie unter VPC Service Controls mit Batch verwenden.
Jobprobleme und Fehler
Wenn ein Job nicht richtig ausgeführt wird oder aus unklaren Gründen fehlschlägt, kann das an einem der Fehler in diesem Abschnitt oder an einem der Exit-Codes im folgenden Abschnitt Exit-Codes bei Aufgabenfehlern liegen.
Keine Logs in Cloud Logging
Problem
Sie müssen einen Job debuggen, aber in Cloud Logging werden keine Logs für den Job angezeigt.
Dieses Problem tritt häufig aus folgenden Gründen auf:
- Die Cloud Logging API ist für Ihr Projekt nicht aktiviert. Auch wenn Sie alles andere für die Protokolle eines Jobs richtig konfigurieren, werden keine Protokolle erstellt, wenn der Dienst für Ihr Projekt nicht aktiviert ist.
- Das Dienstkonto des Jobs hat keine Berechtigung zum Schreiben von Protokollen. Ohne ausreichende Berechtigungen können keine Protokolle für einen Job erstellt werden.
- Der Job wurde nicht für die Erstellung von Protokollen konfiguriert. Damit Logs in Cloud Logging erstellt werden können, muss Cloud Logging für einen Job aktiviert sein. Die ausführbaren Dateien des Jobs sollten so konfiguriert sein, dass alle Informationen, die in Logs erscheinen sollen, in die Standardausgabe (stdout) und den Standardfehlerstream (stderr) geschrieben werden. Weitere Informationen finden Sie unter Jobs anhand von Protokollen analysieren.
- Tasks wurden nicht ausgeführt. Protokolle können erst erstellt werden, wenn Tasks Ressourcen zugewiesen wurden und ausgeführt werden.
- Cloud Logging wurde so konfiguriert, dass die Logs des Jobs automatisch ausgeschlossen werden. Logs von Batchjobs werden möglicherweise nicht angezeigt, wenn Sie Ausschlussfilter für Cloud Logging konfiguriert haben, die dazu führen, dass Logs von Batchjobs ausgeschlossen werden.
Lösung
So beheben Sie das Problem:
- Prüfen Sie, ob die Logs nicht automatisch aus Cloud Logging ausgeschlossen wurden. Deaktivieren Sie dazu alle aktuellen Ausschlussfilter für Cloud Logging.
- Achten Sie darauf, dass die Cloud Logging API für Ihr Projekt aktiviert ist.
- Das Dienstkonto für den Job muss die IAM-Rolle Logs Writer (
roles/logging.logWriter
) haben. Weitere Informationen finden Sie unter Batch-Verarbeitung für ein Projekt aktivieren. - Details zum Job mit der gcloud CLI oder der Batch API aufrufen
Anhand der Jobdetails können Sie nachvollziehen, warum keine Protokolle erstellt wurden. Außerdem enthalten sie möglicherweise Informationen, die Sie sich von den Protokollen erhofft haben. Gehen Sie dazu so vor:
- Prüfen Sie im Feld
logsPolicy
des Jobs, ob das Logging aktiviert ist. - Ob der Job erfolgreich abgeschlossen wurde, sehen Sie im Feld
status
.
- Prüfen Sie im Feld
Nachdem Sie Änderungen vorgenommen haben, erstellen Sie den Job neu und warten Sie, bis er abgeschlossen ist, bevor Sie nach Protokollen suchen.
Keine Berichte zu Kundenservicemitarbeitern
Problem
Für einen Job, der nicht richtig ausgeführt wird oder vor der Erstellung von VMs fehlgeschlagen ist, wird im Feld statusEvents
das folgende Problem angezeigt:
No VM has agent reporting correctly within time window NUMBER_OF_SECONDS seconds, VM state for instance VM_NAME is TIMESTAMP,agent,start
Das Problem weist darauf hin, dass keine der VMs eines Jobs dem Batch-Dienst-Agenten meldet.
Dieses Problem tritt häufig aus folgenden Gründen auf:
- Die VMs des Jobs haben nicht genügend Berechtigungen.
Die VMs eines Jobs benötigen bestimmte Berechtigungen, um ihren Status an den Batch-Dienst-Agenten zu melden. Sie können diese Berechtigungen für die VMs eines Jobs gewähren, indem Sie dem Dienstkonto des Jobs die Rolle „Batch Agent Reporter“ (
roles/batch.agentReporter
) zuweisen. - Die VMs des Jobs haben Netzwerkprobleme. Die VMs eines Jobs benötigen Netzwerkzugriff, um mit dem Batch-Dienst-Agent zu kommunizieren.
- Die VMs des Jobs verwenden ein veraltetes Batch-VM-Betriebssystem-Image oder ein VM-Betriebssystem-Image mit veralteter Batch-Dienst-Agent-Software. Die VMs des Jobs benötigen Software im VM-Betriebssystem-Image, die die aktuellen Abhängigkeiten für die Berichterstellung an den Batch-Dienst-Agenten bereitstellt.
Lösung
So beheben Sie das Problem:
Prüfen Sie, ob die VMs des Jobs die erforderlichen Berechtigungen haben, um ihren Status an den Batch-Dienst-Agenten zu melden.
- Wenn Sie das Dienstkonto des Jobs ermitteln möchten, rufen Sie die Jobdetails mit der gcloud CLI oder der Batch API auf. Wenn kein Dienstkonto aufgeführt ist, verwendet der Job standardmäßig das Compute Engine-Standarddienstkonto.
Prüfen Sie, ob das Dienstkonto des Jobs Berechtigungen für die Rolle „Batch-Agent Reporter“ (
roles/batch.agentReporter
) hat. Weitere Informationen finden Sie unter Zugriff verwalten und Nutzung von Dienstkonten einschränken.Wenn Sie beispielsweise dem Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen erteilen möchten, verwenden Sie den folgenden Befehl:
gcloud projects add-iam-policy-binding PROJECT_ID \ --role roles/batch.agentReporter \ --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
- Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer.
- Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Prüfen Sie, ob die VMs des Jobs über den richtigen Netzwerkzugriff verfügen. Weitere Informationen finden Sie unter Batch-Netzwerkübersicht und Fehlerbehebung bei häufigen Netzwerkproblemen.
Wenn Sie das VM-Betriebssystem-Image für den Job angegeben haben, prüfen Sie, ob es derzeit unterstützt wird.
Wenn Sie Cloud Logging für den Job aktiviert haben, können Sie dieses Problem anhand der folgenden Agent-Logs (
batch_agent_logs
) ermitteln. Weitere Informationen finden Sie unter Job mithilfe von Logs analysieren.Protokoll für Fehler bei veralteter Software des Batch-Dienst-Agents:
rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_AGENT_VERSION: outdated Batch agent version used.
BATCH_AGENT_VERSION ist die Version der Software für die Kommunikation mit dem Batch-Dienst-Agent, der vom Job verwendet wird, z. B.
cloud-batch-agent_20221103.00_p00
.Protokoll für Fehler bei veralteten Batch-VM-Betriebssystem-Images:
rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_VM_OS_IMAGE_NAME: outdated Batch image version.
BATCH_VM_OS_IMAGE_NAME ist die spezifische Version eines VM-Betriebssystem-Images aus Batch, die vom Job verwendet wird, z. B.
batch-debian-11-20220909-00-p00
.
Sie können dieses Problem beheben, indem Sie ein neueres VM-Betriebssystem-Image verwenden. Wenn für den Job ein benutzerdefiniertes Image verwendet wird, erstellen Sie es anhand der neuesten Version eines unterstützten öffentlichen Images neu.
Weitere Informationen finden Sie unter Unterstützte VM-Betriebssystem-Images und VM-Betriebssystem-Images ansehen.
Erstellen Sie den Job neu.
Fehlende Ressourcenmesswerte in Cloud Monitoring
Problem
Sie möchten sich Ressourcenmesswerte für einen Job ansehen, aber einige oder alle erwarteten Messwerte fehlen.
Dieses Problem tritt häufig aus folgenden Gründen auf:
- Die API wurde für Ihr Projekt nicht aktiviert. Selbst wenn Sie alles andere in Ihrem Projekt richtig konfiguriert haben, werden Ressourcenmesswerte möglicherweise erst angezeigt, wenn die Cloud Monitoring API aktiviert ist. Für den Ops-Agenten müssen Sie außerdem die Cloud Logging API aktivieren.
- Sie sind nicht berechtigt, die Messwerte aufzurufen. Ohne ausreichende Berechtigungen können Sie keine Messwerte aufrufen.
- Die VMs des Jobs wurden nicht ausgeführt. Messwerte für einen Job können erst erstellt werden, wenn mindestens eine der VMs des Jobs ausgeführt wird.
- Die Konfiguration oder Berechtigungen des Jobs unterstützen keine Ops-Agent-Messwerte. Einige Ressourcenmesswerte können nur vom Ops-Agent bereitgestellt werden. Damit Ops-Agent-Messwerte unterstützt werden, muss ein Job die Anforderungen für den Ops-Agent erfüllen, der Ops-Agent installiert sein und ein Dienstkonto verwendet werden, das Messwerte in Monitoring schreiben kann.
- Sie müssen eine andere Methode oder einen anderen Filter verwenden, um die Messwerte aufzurufen. Bei einigen Methoden zum Ansehen von Messwerten werden keine Messwerte für VMs angezeigt, nachdem die VMs gelöscht wurden. Außerdem werden Messwerte nicht angezeigt, wenn sie durch Filter oder den angezeigten Zeitraum ausgeschlossen werden. Außerdem haben Messwertdiagramme eine einstellbare Auflösung, die dazu führen kann, dass kleine Datenmengen zu dünn sind, um dargestellt zu werden.
- Die Messwerte wurden gelöscht. Nach dem Löschen können Sie Messwerte nicht mehr aufrufen. Das geschieht automatisch nach Ablauf der Aufbewahrungszeiträume für Monitoring.
Lösung
Wenn nur Ops-Agent-Messwerte fehlen, versuchen Sie zuerst, das Problem so zu beheben:
- Prüfen Sie die Konfiguration des Jobs:
- Die vollständigen Konfigurationsinformationen des Jobs finden Sie in den Details des Jobs mit der gcloud CLI oder der Batch API. Verwenden Sie die Ausgabe für die restlichen Schritte.
- Das Dienstkonto des Jobs muss Berechtigungen zum Schreiben von Ops-Agent-Messwerten haben.
- Prüfen Sie, ob die Aufgabe alle Anforderungen an Ops-Agenten erfüllt.
- Prüfen Sie, ob der Ops-Agent durch den Job korrekt installiert wird. Es ist zwar möglich, den Ops-Agent manuell in einem ausführbaren Programm zu installieren, wir empfehlen jedoch, ihn automatisch zu installieren, indem Sie das Feld
installOpsAgent
auftrue
setzen.
- Wenn das Problem weiterhin besteht, lesen Sie den Hilfeartikel Fehlerbehebung für den Ops-Agenten in der Google Cloud Observability-Dokumentation.
Andernfalls beheben Sie das Problem so:
- Die Monitoring API muss für Ihr Projekt aktiviert sein:
- Prüfen Sie, ob die VMs des Jobs gestartet wurden und die Laufzeit noch innerhalb der Aufbewahrungsdauern für die Überwachung liegt. Die Ausführungszeit des Jobs finden Sie in den Jobdetails.
- Prüfen Sie, ob Probleme mit den Methoden auftreten, mit denen Sie Messwerte aufrufen:
- Sofern Sie nicht nur Messwerte für laufende Ressourcen sehen möchten, verwenden Sie den Metrics Explorer oder ein benutzerdefiniertes Dashboard mit Metrics Explorer-Diagrammen. Bei anderen Methoden, z. B. Compute Engine-Dashboards, werden keine Messwerte für gelöschte Ressourcen angezeigt.
- Der Ausgabezeitraum muss die Laufzeit des Jobs umfassen. Achten Sie bei Diagrammen auch darauf, dass die Diagrammauflösung für Ihre Daten geeignet ist.
- Achten Sie darauf, dass keine Filter aktiviert sind, die die Daten ausblenden.
- Wenn das Problem weiterhin besteht, lesen Sie die Seiten Fehlerbehebung für das Cloud-Monitoring in der Google Cloud Observability-Dokumentation.
Einschränkung für externe IP-Adressen von VMs verletzt
Problem
Für einen fehlgeschlagenen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Instance VM_NAME creation failed: Constraint constraints/compute.vmExternalIpAccess violated for project PROJECT_NUMBER. Add instance VM_NAME to the constraint to use external IP with it.
Dieses Problem tritt auf, weil für Ihr Projekt, Ihren Ordner oder Ihre Organisation die compute.vmExternalIpAccess
-Einschränkung der Organisationsrichtlinie festgelegt wurde, sodass nur VMs auf der Zulassungsliste externe IP-Adressen verwenden können.
Lösung
Erstellen Sie den Job neu und führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
- Verwenden Sie ein Projekt, das von der Einschränkung ausgenommen ist.
- Erstellen Sie einen Job, der den externen Zugriff für alle VMs blockiert.
Verstoß gegen die Beschränkung für vertrauenswürdige Images
Problem
Für einen fehlgeschlagenen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Instance VM_NAME creation failed: Constraint constraints/compute.trustedImageProjects violated for project PROJECT_ID. Use of images from project batch-custom-image is prohibited.
Lösung
Dieses Problem tritt auf, weil in Ihrem Projekt die Richtlinieneinschränkung für vertrauenswürdige Images (compute.trustedImageProjects
) so festgelegt ist, dass Images aus Batch, die sich im Images-Projekt batch-custom-image
befinden, nicht zulässig sind.
Führen Sie mindestens einen der folgenden Schritte aus, um das Problem zu beheben:
- Erstellen Sie den Job neu, um ein VM-Betriebssystem-Image anzugeben, das bereits durch die Einschränkung der Richtlinie für vertrauenswürdige Images zulässig ist.
- Bitten Sie Ihren Administrator, die Einschränkung der Richtlinie für vertrauenswürdige Images zu ändern, um VM-Betriebssystem-Images aus dem Images-Projekt
batch-custom-image
zuzulassen. Eine Anleitung finden Sie unter Zugriff auf VM-Betriebssystem-Images für Batch-Jobs steuern.
Job ist bei Verwendung einer Instanzvorlage fehlgeschlagen
Problem
Für einen fehlgeschlagenen Job, der eine Instanzvorlage verwendet, wird im Feld statusEvents
das folgende Problem angezeigt:
INVALID_FIELD_VALUE,BACKEND_ERROR
Dieses Problem tritt aufgrund unklarer Probleme mit der Instanzvorlage des Jobs auf.
Lösung
So führen Sie weitere Schritte zur Fehlerbehebung durch:
- Erstellen Sie eine MIG mit der Instanzvorlage und prüfen Sie, ob Fehler mit weiteren Details auftreten.
Optional: Weitere Informationen finden Sie im lang laufenden Vorgang, mit dem die MIG in der Google Cloud -Konsole erstellt wird.
Exit-Codes bei fehlgeschlagenen Aufgaben
Wenn eine bestimmte Aufgabe in einem Job fehlschlägt, gibt die Aufgabe einen Exit-Code zurück, der nicht null ist.
Je nachdem, wie Sie das Feld ignoreExitStatus
konfigurieren, kann eine fehlgeschlagene Aufgabe dazu führen, dass ein Job fehlschlägt oder nicht.
Neben den in einem ausführbaren Programm definierten Exit-Codes gibt es für Batch-Dateien mehrere reservierte Exit-Codes, einschließlich der folgenden:
Vorzeitiges Beenden von VMs (50001)
Problem
Für einen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Spot Preemption with exit code 50001.
Dieses Problem tritt auf, wenn eine Spot-VM für den Job während der Laufzeit vorzeitig beendet wird.
Lösung
Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
- Wiederholen Sie die Aufgabe entweder mithilfe von automatischen Wiederholungen von Aufgaben oder führen Sie den Job manuell noch einmal aus.
- Verwenden Sie stattdessen VMs mit dem Standardbereitstellungsmodell, um eine Vorabankündigung zu vermeiden.
Zeitüberschreitung bei der VM-Berichterstattung (50002)
Problem
Für einen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Batch no longer receives VM updates with exit code 50002.
Dieses Problem tritt auf, wenn es im Backend zu einem Zeitlimit kommt, wodurch Batch keine Updates mehr von einer VM für den Job erhält. Leider können viele Hardware- oder Softwarefehler dazu führen, dass eine VM nicht mehr reagiert. Eine VM kann beispielsweise aufgrund eines vorübergehenden Hostereignisses oder nicht ausreichender Ressourcen abstürzen.
Lösung
So beheben Sie das Problem:
- Falls das Problem vorübergehend ist und sich von selbst behebt, wiederholen Sie die Aufgabe entweder mithilfe der automatischen Wiederholung von Aufgaben oder führen Sie den Job manuell noch einmal aus.
Wenn das Problem weiterhin besteht, ermitteln Sie die Ursache und beheben Sie sie. Führen Sie dazu einen oder mehrere der folgenden Schritte aus:
Empfohlen:Wenden Sie sich an den Google Cloud -Support oder verwenden Sie das Batch-Label in Cloud Forums.
Versuchen Sie, das Problem selbst zu identifizieren und zu beheben. Wenn Sie beispielsweise mit der Compute Engine vertraut sind, können Sie versuchen, die Probleme mit den VMs des Jobs zu beheben. Gehen Sie dazu so vor:
So ermitteln Sie die Namen der VMs Ihres Jobs:
- Logs für den Job ansehen
- Filtern Sie Protokolle nach Einträgen, die den Begriff
report agent state:
enthalten. Sehen Sie sich die Protokolle an, um die VM für jeden Versuch jeder Aufgabe zu ermitteln. Jedes Protokoll ähnelt dem folgenden, in dem eine
instance:
-Phrase und eine oder mehreretask_id:
-Phrasen enthalten sind.report agent state: ... instance:"INSTANCE_NAME" ... task_id:"task/JOB_UID-group0-TASK_INDEX/TASK_RETRIES/0 ..."
Dieses Protokoll enthält die folgenden Werte:
INSTANCE_NAME
: der Name der VMJOB_UID
: Die eindeutige ID (UID) des Jobs.TASK_INDEX
: Der Index der Aufgabe.TASK_RETRIES
: Der Versuch der Aufgabe, der auf dieser VM ausgeführt wurde. Dieser wird als Anzahl der Wiederholungen formatiert. Für den ersten Versuch einer Aufgabe lautet dieser Wert beispielsweise0
. Sofern Sie die automatische Wiederholung von Aufgaben nicht aktivieren, wird jede Aufgabe nur einmal ausgeführt.
Informationen zur Fehlerbehebung bei den VMs Ihres Jobs finden Sie in der Compute Engine-Dokumentation. Weitere Informationen finden Sie unter Fehlerbehebung bei Neustarts und Neustarts von VMs und Fehlerbehebung beim VM-Startvorgang.
VM wurde während der Ausführung neu gestartet (50003)
Problem
Für einen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to VM is rebooted during task execution with exit code 50003.
Dieses Problem tritt auf, wenn eine VM für einen Job während der Laufzeit unerwartet neu gestartet wird.
Lösung
Um dieses Problem zu beheben, wiederholen Sie die Aufgabe entweder mithilfe von automatischen Wiederholungen von Aufgaben oder führen Sie den Job manuell noch einmal aus.
VM und Aufgabe reagieren nicht (50004)
Problem
Für einen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to tasks cannot be canceled with exit code 50004.
Dieses Problem tritt auf, wenn eine Aufgabe das Zeitlimit für die Zeitüberschreitung erreicht und nicht abgebrochen werden kann.
Lösung
Wiederholen Sie die Aufgabe, um dieses Problem zu beheben. Sie können dazu entweder automatische Wiederholungsversuche für Aufgaben verwenden oder den Job manuell noch einmal ausführen.
Die Aufgabe überschreitet die maximale Laufzeit (50.005)
Problem
Für einen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to task runs over the maximum runtime with exit code 50005.
Dieses Problem tritt in den folgenden Fällen auf:
- Die Ausführungszeit einer Aufgabe überschreitet das im Feld
maxRunDuration
angegebene Zeitlimit. - Die Ausführungszeit eines ausführbaren Elements überschreitet das im Feld
timeout
angegebene Zeitlimit.
Wenn Sie genau wissen möchten, welches Zeitlimit überschritten wurde, rufen Sie die Protokolle für den Job auf und suchen Sie nach einem Protokoll, in dem der 50005
-Beenden-Code erwähnt wird. Im Feld textPayload
dieses Protokolls wird angegeben, wo und wann das Zeitlimit überschritten wurde.
Lösung
Um das Problem zu beheben, versuchen Sie, die Gesamtlaufzeit zu ermitteln, die für die Aufgabe oder das ausführbare Programm erforderlich ist, das das Zeitlimit überschritten hat. Führen Sie anschließend einen der folgenden Schritte aus:
Wenn Sie diesen Fehler nur gelegentlich erwarten, z. B. bei einer Aufgabe oder einem ausführbaren Programm mit einer inkonsistenten Laufzeit, können Sie versuchen, den Job neu zu erstellen und ihn so zu konfigurieren, dass Aufgabenwiederholungen automatisiert werden, um die Erfolgsquote zu erhöhen.
Wenn die Aufgabe oder das ausführbare Programm jedoch regelmäßig und beabsichtigt mehr Zeit für die Ausführung benötigt als das aktuelle Zeitlimit zulässt, legen Sie ein längeres Zeitlimit fest.
VM während der Ausführung neu erstellt (50006)
Problem
Für einen Job wird im Feld statusEvents
das folgende Problem angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to VM is recreated during task execution with exit code 50006.
Dieses Problem tritt auf, wenn eine VM für einen Job während der Laufzeit unerwartet neu erstellt wird.
Lösung
Wiederholen Sie die Aufgabe, um dieses Problem zu beheben. Sie können dazu entweder automatische Wiederholungsversuche für Aufgaben verwenden oder den Job manuell noch einmal ausführen.