Jobs, die in einem RUNNABLE Status feststecken - AWS Batch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Jobs, die in einem RUNNABLE Status feststecken

Angenommen, Ihre Datenverarbeitungsumgebung enthält Rechenressourcen, aber Ihre Jobs werden nicht über diesen RUNNABLE Status hinaus bearbeitet. Dann ist es wahrscheinlich, dass etwas verhindert, dass die Jobs auf einer Rechenressource platziert werden, und dass Ihre Jobwarteschlangen blockiert werden. Hier erfahren Sie, ob Ihr Job darauf wartet, an der Reihe zu sein, oder ob er feststeckt und die Warteschlange blockiert.

Wenn AWS Batch festgestellt wird, dass Sie einen RUNNABLE Job an der Spitze haben und die Warteschlange blockieren, erhalten Sie von Amazon CloudWatch Events eine Ressource: Blockierte Ereignisse in der Jobwarteschlange Veranstaltung mit dem Grund. Derselbe Grund wird auch im Rahmen von ListJobs DescribeJobs API-Aufrufen in das statusReason Feld aktualisiert.

Optional können Sie den jobStateTimeLimitActions Parameter über CreateJobQueue und UpdateJobQueueAPI-Aktionen konfigurieren.

Anmerkung

Derzeit besteht die einzige Aktion, die Sie mit verwenden können, jobStateLimitActions.action darin, einen Job abzubrechen.

Der jobStateTimeLimitActions Parameter wird verwendet, um eine Reihe von Aktionen anzugeben, die AWS Batch für Jobs in einem bestimmten Status ausgeführt werden. Sie können über das maxTimeSeconds Feld einen Zeitschwellenwert in Sekunden festlegen.

Wenn sich ein Job in einem RUNNABLE Zustand mit dem definierten Status befunden hat statusReason AWS Batch , wird die angegebene Aktion nach Ablauf maxTimeSeconds ausgeführt.

Sie können den jobStateTimeLimitActions Parameter beispielsweise so einstellen, dass bis zu 4 Stunden auf jeden Job in diesem RUNNABLE Status gewartet wird, der darauf wartet, dass genügend Kapazität verfügbar wird. Sie können dies tun, indem Sie statusReason den CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY Wert maxTimeSeconds auf 144000 einstellen, bevor Sie den Job abbrechen und dem nächsten Job erlauben, an die Spitze der Job-Warteschlange zu gelangen.

Im Folgenden sind die Gründe aufgeführt, aus denen AWS Batch hervorgeht, dass eine Auftragswarteschlange blockiert ist. Diese Liste enthält die Nachrichten, die von den Aktionen ListJobs und der DescribeJobs API zurückgegeben wurden. Dies sind auch dieselben Werte, die Sie für den jobStateLimitActions.statusReason Parameter definieren können.

  1. Grund: In allen verbundenen Rechenumgebungen treten Fehler aufgrund unzureichender Kapazitäten auf. AWS Batch Erkennt auf Anfrage EC2 Amazon-Instances, bei denen Fehler mit unzureichender Kapazität auftreten. Wenn der Auftrag manuell storniert wird, kann der nachfolgende Auftrag an die Spitze der Warteschlange verschoben werden. Ohne die Probleme mit der Servicerolle zu lösen, ist es jedoch wahrscheinlich, dass auch der nächste Auftrag blockiert wird. Es empfiehlt sich, dieses Problem manuell zu untersuchen und zu lösen.

    • statusReasonNachricht, während der Job feststeckt: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - Service cannot fulfill the capacity requested for instance type [instanceTypeName]

    • reasonverwendet fürjobStateTimeLimitActions: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY

    • statusReasonNachricht, nachdem der Job abgebrochen wurde: Canceled by JobStateTimeLimit action due to reason: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY

    Hinweis:

    1. Die AWS Batch Servicerolle benötigt eine autoscaling:DescribeScalingActivities entsprechende Genehmigung, damit diese Erkennung funktioniert. Wenn Sie die Dienstbezogene Rollenberechtigungen für AWS Batch serviceverknüpfte Rolle (SLR) oder die AWS verwaltete Richtlinie: AWSBatchServiceRoleRichtlinie verwaltete Richtlinie verwenden, müssen Sie keine Maßnahmen ergreifen, da die entsprechenden Berechtigungsrichtlinien aktualisiert wurden.

    2. Wenn Sie die SLR- oder die verwaltete Richtlinie verwenden, müssen Sie die ec2:DescribeSpotFleetRequestHistory Berechtigungen autoscaling:DescribeScalingActivities und hinzufügen, damit Sie blockierte Jobwarteschlangenereignisse und den aktualisierten Auftragsstatus erhalten können, wenn Sie angemeldet sind. RUNNABLE Darüber hinaus sind diese AWS Batch Berechtigungen erforderlich, um cancellation Aktionen über den jobStateTimeLimitActions Parameter ausführen zu können, auch wenn sie in der Auftragswarteschlange konfiguriert sind.

    3. Wenn bei einem MNP-Job (Multi-Node Parallel) Fehler in der angehängten EC2 Amazon-Rechenumgebung mit hoher Priorität auftreten, wird die Warteschlange blockiert, selbst wenn dieser insufficient capacity Fehler in einer Rechenumgebung mit niedrigerer Priorität auftritt.

  2. Grund: Alle Computerumgebungen haben einen maxvCpusParameter, der kleiner ist als die Jobanforderungen. Wenn Sie den Job entweder manuell oder durch Aktivieren des jobStateTimeLimitActions Parameters abbrechenstatusReason, kann der nachfolgende Job an die Spitze der Warteschlange verschoben werden. Optional können Sie den maxvCpus Parameter der primären Rechenumgebung erhöhen, um den Anforderungen des blockierten Auftrags gerecht zu werden.

    • statusReasonNachricht, während der Job feststeckt: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - CE(s) associated with the job queue cannot meet the CPU requirement of the job.

    • reasonverwendet fürjobStateTimeLimitActions: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE

    • statusReasonNachricht, nachdem der Job abgebrochen wurde: Canceled by JobStateTimeLimit action due to reason: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE

  3. Grund: Keine der Rechenumgebungen verfügt über Instanzen, die die Jobanforderungen erfüllen. Wenn ein Job Ressourcen anfordert, wird AWS Batch erkannt, dass keine angeschlossene Rechenumgebung in der Lage ist, den eingehenden Job zu verarbeiten. Wenn Sie den Job entweder manuell oder durch Aktivieren des jobStateTimeLimitActions Parameters abbrechenstatusReason, kann der nachfolgende Job an die Spitze der Warteschlange verschoben werden. Optional können Sie die zulässigen Instanztypen der Rechenumgebung neu definieren, um die erforderlichen Jobressourcen hinzuzufügen.

    • statusReasonNachricht, während der Job feststeckt: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - The job resource requirement (vCPU/memory/GPU) is higher than that can be met by the CE(s) attached to the job queue.

    • reasonverwendet fürjobStateTimeLimitActions: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT

    • statusReasonNachricht, nachdem der Job abgebrochen wurde: Canceled by JobStateTimeLimit action due to reason: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT

  4. Grund: In allen Computerumgebungen gibt es Probleme mit Servicerollen. Um dieses Problem zu lösen, vergleichen Sie Ihre Berechtigungen für Servicerollen mit AWS verwaltete Richtlinien für AWS Batch denen und schließen Sie etwaige Lücken. Hinweis: Sie können über den jobStateTimeLimitActions Parameter keine programmierbare Aktion konfigurieren, um diesen Fehler zu beheben.

    Es hat sich bewährt, den zu verwenden, um ähnliche Dienstbezogene Rollenberechtigungen für AWS Batch Fehler zu vermeiden.

    Wenn Sie den Auftrag entweder manuell oder durch Aktivieren des jobStateTimeLimitActions Parameters abbrechenstatusReason, kann der nachfolgende Auftrag an die Spitze der Warteschlange verschoben werden. Ohne die Probleme mit der Servicerolle zu lösen, ist es wahrscheinlich, dass auch der nächste Auftrag blockiert wird. Es empfiehlt sich, dieses Problem manuell zu untersuchen und zu lösen.

    • statusReasonNachricht, während der Job feststeckt: MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS – Batch service role has a permission issue.

  5. Grund: Alle Rechenumgebungen sind ungültig. Weitere Informationen finden Sie unter INVALIDDatenverarbeitungsumgebung. Hinweis: Sie können über den jobStateTimeLimitActions Parameter keine programmierbare Aktion konfigurieren, um diesen Fehler zu beheben.

    • statusReasonMeldung, während der Job feststeckt: ACTION_REQUIRED - CE(s) associated with the job queue are invalid.

  6. Grund: AWS Batch hat eine blockierte Warteschlange erkannt, kann aber den Grund nicht ermitteln. Hinweis: Sie können über den jobStateTimeLimitActions Parameter keine programmierbare Aktion konfigurieren, um diesen Fehler zu beheben. Weitere Informationen zur Fehlerbehebung finden Sie unter Warum ist mein AWS Batch Job in RUNNABLE hängen AWS geblieben in re:POST.

    • statusReasonNachricht, während der Job feststeckt: UNDETERMINED - Batch job is blocked, root cause is undetermined.

Falls Sie kein Ereignis von CloudWatch Events erhalten haben oder ein Ereignis mit unbekanntem Grund erhalten haben, finden Sie hier einige der häufigsten Ursachen für dieses Problem.

Der awslogs Protokolltreiber ist auf Ihren Rechenressourcen nicht konfiguriert

AWS Batch Jobs senden ihre Protokollinformationen an CloudWatch Logs. Um die entsprechende Funktion zu aktivieren, müssen Sie Ihre Datenverarbeitungsressourcen so konfigurieren, dass sie den awslogs-Protokolltreiber verwenden. Angenommen, Sie basieren Ihr Computerressourcen-AMI auf dem für Amazon ECS optimierten AMI (oder Amazon Linux). Dann ist dieser Treiber standardmäßig im ecs-init Paket registriert. Nehmen wir nun an, Sie verwenden ein anderes Basis-AMI. Anschließend müssen Sie überprüfen, ob der awslogs Protokolltreiber als verfügbarer Protokolltreiber mit der ECS_AVAILABLE_LOGGING_DRIVERS Umgebungsvariablen angegeben ist, wenn der Amazon ECS-Container-Agent gestartet wird. Weitere Informationen erhalten Sie unter AMI-Spezifikation für Rechenressourcen und Tutorial: Erstellen Sie ein Compute-Ressourcen-AMI.

Unzureichende Ressourcen

Wenn in Ihren Jobdefinitionen mehr CPU- oder Speicherressourcen angegeben sind, als Ihre Rechenressourcen zuweisen können, werden Ihre Jobs niemals vergeben. Nehmen wir zum Beispiel an, Ihr Job spezifiziert 4 GiB Arbeitsspeicher und für Ihre Rechenressourcen ist weniger verfügbar. Dann ist es so, dass der Job nicht auf diesen Rechenressourcen platziert werden kann. In diesem Fall müssen Sie den angegebenen Speicher in Ihrer Auftragsdefinition reduzieren oder Ihrer Umgebung größere Datenverarbeitungsressourcen hinzufügen. Ein Teil des Speichers ist für den Amazon ECS-Container-Agenten und andere kritische Systemprozesse reserviert. Weitere Informationen finden Sie unter Speicherverwaltung für Rechenressourcen.

Kein Internetzugang für Rechenressourcen

Datenverarbeitungsressourcen benötigen einen externen Netzwerkzugriff, um mit dem Amazon-ECS-Service-Endpunkt zu kommunizieren. Dies kann über einen Schnittstellen-VPC-Endpunkt oder über Ihre Datenverarbeitungsressourcen mit öffentlichen IP-Adressen sein.

Weitere Informationen zu Interface-VPC-Endpunkten finden Sie unter Amazon-ECS-Schnittstellen-VPC-Endpunkte (AWS PrivateLink) im Amazon Elastic Container Service-Entwicklerhandbuch.

Wenn Sie keinen Schnittstellen-VPC-Endpunkt konfiguriert haben und Ihre Datenverarbeitungsressourcen keine öffentlichen IP-Adressen haben, müssen Sie Netzwerkadressübersetzung (Network Address Translation, NAT) verwenden, um diesen Zugriff zur Verfügung zu stellen. Weitere Informationen finden Sie unter NAT-Gateways im Amazon VPC-Benutzerhandbuch. Weitere Informationen finden Sie unter Tutorial: Eine VPC erstellen.

EC2 Amazon-Instanzlimit erreicht

Die Anzahl der EC2 Amazon-Instances, in denen Ihr Konto gestartet werden kann, hängt von Ihrem EC2 Instance-Kontingent ab. AWS-Region Bestimmte Instance-Typen haben auch ein per-instance-type Kontingent. Weitere Informationen zum EC2 Amazon-Instance-Kontingent Ihres Kontos, einschließlich der Beantragung einer Limiterhöhung, finden Sie unter Amazon EC2 Service Limits im EC2 Amazon-Benutzerhandbuch.

Der Amazon ECS-Container-Agent ist nicht installiert

Der Amazon ECS-Container-Agent muss auf dem Amazon Machine Image (AMI) installiert sein, damit Jobs AWS Batch ausgeführt werden können. Der Amazon ECS-Container-Agent ist standardmäßig auf Amazon ECS Optimized installiert AMIs. Weitere Informationen zum Amazon ECS-Container-Agenten finden Sie unter Amazon ECS-Container-Agent im Amazon Elastic Container Service Developer Guide.

Weitere Informationen finden Sie unter Warum bleibt mein AWS Batch Job im RUNNABLE Status hängen? in re:POST.