Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie behebe ich einen AWS Batch-Auftrag, der im RUNNABLE-Status feststeckt?
Mein AWS Batch-Job ist im Status RUNNABLE hängengeblieben.
Kurzbeschreibung
AWS Batch versetzt einen Auftrag in den Status RUNNABLE, wenn der Auftrag keine ausstehenden Abhängigkeiten hat und AWS Batch den Auftrag planen kann. Aufträge mit dem Status RUNNABLE starten, sobald in einer der Rechenumgebungen, die der Warteschlange des Auftrags zugeordnet sind, genügend Ressourcen verfügbar sind.
Wenn die für die Ausführung eines Auftrags die erforderlichen Ressourcen nicht verfügbar sind, kann der Auftrag möglicherweise im Status RUNNABLE feststecken.
Hinweis: Mit der folgenden Lösung werden Fehler bei AWS Batch-Aufträgen behoben, die in Amazon Elastic Container Service (Amazon ECS)-Containern ausgeführt werden. Diese Container können entweder auf Amazon Elastic Compute Cloud (Amazon EC2)-Instances oder AWS Fargate-Rechenumgebungen ausgeführt werden. Informationen zur Problembehebung von Aufträgen bei AWS Batch auf Amazon Elastic Kubernetes Service (Amazon EKS) findest du unter AWS Batch auf Amazon EKS.
Lösung
Stelle zunächst fest, ob dein hängengebliebener Auftrag die FIFO-Warteschlange (First-In, First-Out) blockiert. Wenn dein Problem dadurch nicht behoben wird, automatisiere entweder die Fehlerbehebung, um das Problem zu ermitteln, oder behebe das Problem manuell.
Nach einer blockierten FIFO-Warteschlange suchen
Ein Auftrag kann am Anfang einer FIFO-Warteschlange (First-In, First-Out) aufgrund der folgenden Probleme im RUNNABLE-Status hängen bleiben:
- Der Auftrag verwendet kein Fair-Share-Scheduling, sodass alle anderen dahinter stehenden Aufträge nicht ausgeführt werden können.
- In deinem AWS-Konto liegt eine Fehlkonfiguration vor.
- Dein Konto hat keinen Zugriff auf die für den Job erforderlichen Instances. Beispielsweise erfordert dein Konto möglicherweise einen GPU-Instance-Typ.
Um die FIFO-Warteschlange zu entsperren, verwende GetJobQueueSnapshot, um den Auftrag zu finden, der die Warteschlange blockiert, und fahre den Auftrag dann herunter.
Fehlerbehebungsprozess automatisieren
Verwende das Runbook AWSSupport-TroubleshootAWSBatchJob, um Probleme mit dem AWS Batch-Auftrag zu beheben, der im Status RUNNABLE verblieben ist. Oder führe die Schritte in den folgenden Abschnitten aus, um das Problem manuell zu beheben.
Überprüfe, ob deine Rechenumgebung über genügend Ressourcen verfügt, um deinen Auftrag auszuführen
Führe die folgenden Schritte aus:
- Öffne die AWS Batch-Konsole.
- Wähle im Navigationsbereich Dashboard aus.
- Wähle im Abschnitt Übersicht über die Auftragswarteschlange in der Spalte RUNNABLE den Auftrag aus, der im Status RUNNABLE feststeckt. Die Detailseite für den Auftrag wird angezeigt.
- Wähle die Registerkarte Container aus und notiere dir dann die Werte für vCPUs, ** Arbeitsspeicher** und GPUs, um die Schritte 9–10 abzuschließen.
- Wähle im Navigationsbereich Auftragswarteschlangen und dann deine Auftragswarteschlange aus.
- Finde auf der Registerkarte Umgebungsreihenfolge die Rechenumgebungen, die deiner Auftragswarteschlange zugeordnet sind.
- Wähle im Navigationsbereich Umgebungen und dann eine Rechenumgebung aus, um deren Berechtigungen zu überprüfen.
- Vergewissere dich im Abschnitt Status, dass die Spalte Status der Rechenumgebung auf Gültig gesetzt ist.
Hinweis: Bei zeitweiligen oder vorübergehenden Fehlern kann es einige Minuten dauern, bis sich der Status der Rechenumgebung von Valid auf Invalid ändert. - Stelle sicher, dass in der Registerkarte Details die mit der Umgebung verknüpfte Servicerolle über alle erforderlichen Berechtigungen verfügt.
- Vergewissere dich, dass im Abschnitt Status die Spalte Status Aktiviert ist.
- Überprüfe auf der Registerkarte Rechenressourcen den Wert Maximum vCPUs. Dieser Wert muss hoch genug sein, damit AWS Batch die Anzahl der Gewünschten vCPUs für die Ausführung von Aufträgen erhöhen kann.
Hinweis: Wenn du eine Fargate-Rechenumgebung verwendest, fahre mit dem Abschnitt Netzwerk- und Sicherheitseinstellungen der Rechenumgebung überprüfen fort. - Stelle sicher, dass der Wert Gewünschte vCPUs mit der Anzahl der vCPUs übereinstimmt oder höher ist als die Anzahl der vCPUs, die der Auftrag ausführen muss.
- Wenn Gewünschte vCPUs 0 ist, überprüfe die Menge an Speicher und CPU-Ressourcen, die für deinen Amazon EC2-Instance-Typ verfügbar sind. Wenn Gewünschte vCPU größer als 0 ist oder sich dein Auftrag immer noch im Status RUNNABLE befindet, führe die Schritte im folgenden Abschnitt aus.
Wiederhole die Schritte 6–14 für die einzelnen Rechenumgebungen.
Wichtig: Mindestens einer der Instance-Typen für deine Rechenumgebung muss über mehr Speicher verfügen, als in deinem Auftrag angegeben. Außerdem muss der Instance-Typ über CPU-Ressourcen verfügen, die den in Ihrem Job angegebenen Ressourcen entsprechen oder höher als diese sind. Wenn mindestens ein Instance-Typ nicht über genügend Speicher oder CPU-Ressourcen verfügt, um Ihren Job auszuführen, brechen Sie den Job ab. Führen Sie einen neuen Job aus, der weniger CPU oder Speicher benötigt. Erstellen Sie alternativ eine neue Rechenumgebung mit genügend Ressourcen, um den Job auszuführen, und weisen Sie den Job dann der entsprechenden Auftragswarteschlange zu.
Stelle sicher, dass deine Rechenumgebung über Instances verfügt und dass die Instances für die Ausführung deines Jobs verfügbar sind
Führe für die Rechenumgebung, in der dein Auftrag ausgeführt wird, die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich Clusters und dann den Cluster aus, der deinen Auftrag enthält.
Hinweis: Der Name des Clusters beginnt mit dem Namen der Rechnerumgebung, gefolgt von**_Batch_** und einer zufälligen Folge von Zahlen und Buchstaben. - Wähle die Registerkarte Infrastruktur aus.
- Suche im Abschnitt Container-Instance nach deinen Container-Instances und überprüfe dann, ob deine Container-Instances für die Ausführung deines Auftrags verfügbar sind.
Wenn der Cluster über eine verfügbare Container-Instance verfügt, um deinen Auftrag auszuführen, überprüfe den Status des Docker-Daemons und des Amazon ECS-Container-Agenten. Weitere Informationen findest du unter Wie behebe ich Probleme mit einem getrennten Amazon ECS-Agent?
Wenn der Amazon ECS-Cluster keine Instances enthält, prüfe, ob du Instances in deiner Rechenumgebung erstellen kannst.
On-Demand-Rechenumgebung
Führe die folgenden Schritte aus:
-
Öffne die Amazon-EC2-Konsole.
-
Wähle im Navigationsbereich Auto Scaling und dann Auto-Scaling-Gruppen aus.
-
Gib in das Suchfeld den Namen deiner Rechenumgebung ein und wähle dann deine Computerumgebung aus.
Hinweis: Amazon EC2 kann mehr als eine Auto-Scaling-Gruppe für dieselbe Rechenumgebung erstellen. -
Wähle für jede Auto-Scaling-Gruppe die Registerkarte Aktivität aus und suche dann im Abschnitt Aktivitätsverlauf nach Blockierungsproblemen.
Hinweis: In der Spalte Status wird Erfolglos angezeigt, wenn Probleme auftreten, die dazu führen, dass Instances nicht gestartet werden.
Wenn dein Konto beispielsweise die maximale Anzahl von Instances erreicht, gibt Amazon EC2 möglicherweise eine Meldung zurück, die der folgenden ähnelt:
„Launching a new EC2 instance. Status Reason: Your quota allows for 0 more running instance(s). You requested at least 1. Launching EC2 instance failed.“
Das Ereignis enthält einen Zeitstempel in UTC ab dem Zeitpunkt, zu dem du den Job eingereicht hast:At 2018-09-03T05:54:30Z a user request update of AutoScalingGroup constraints to min: 0, max: 1, desired: 1 changing the desired capacity from 0 to 1.At 2018-09-03T05:54:52Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1.Hinweis: AWS Batch fordert Instances in deinem Namen an. Wenn du die Auto-Scaling-Gruppen manuell änderst, wird deine Rechenumgebung möglicherweise ungültig. Weitere Informationen zu Instance-Kontingenten und dazu, wie du eine Kontingenterhöhung beantragen kannst, findest du unter Amazon EC2 Service Quotas.
Wenn die Auto-Scaling-Gruppe unter Aktuelle Ereignisse nur erfolgreiche Ereignisse anzeigt, führe die Schritte im Abschnitt IAM-Rolle der Container-Instance überprüfen aus.
Wichtig: Du musst Berechtigungen für die AWSServiceRoleForAutoscaling AWS Identity and Access Management (IAM)-Servicerolle festlegen. Die IAM-Rolle AWSServiceRoleForAutoScaling muss über Zugriff auf den vom Kunden verwalteten AWS Key Management Service (AWS KMS)-Schlüssel verfügen. Dies ist in Umgebungen mit benutzerdefinierten Amazon Machine Images (AMIs), verschlüsselten Amazon Elastic Block Store (Amazon EBS)-Volumes und kundenverwalteten AWS-KMS-Schlüsseln erforderlich. Weitere Informationen findest du in den Abschnitten zu den Schlüsselrichtlinien, die den Zugriff auf den vom Kunden verwalteten Schlüssel ermöglichen.
Spot-Rechenumgebung
Führe die folgenden Schritte aus:
- Öffne die Amazon-EC2-Konsole.
- Wähle im Navigationsbereich Spot-Anfragen aus.
- Wähle Anforderungstyp und dann Anforderungstyp = Flotte aus.
- Wähle deine Spot-Anfrage aus.
- Wähle für Status die Option Aktiv aus.
- Wähle Beschreibung aus und überprüfe dann den Wert für die Gesamtzielkapazität aus, um festzustellen, ob die Spot-Instance-Anfrage erfüllt wurde. Wenn es keine Instance gibt, überprüfe in der Verlaufsansicht, warum.
Bei Anfragen, bei denen ein Angebotspreis nicht erreicht werden kann, wird beispielsweise eine Meldung ähnlich der folgenden zurückgegeben:
„m4.large, ami-aff65ad2, Linux/UNIX (Amazon VPC), us-east-1a, Spot bid price is less than Spot market price $0.0324“ - Wähle einen geeigneten Gebotsprozentsatz für deine Rechenumgebung. Stelle sicher, dass du eine neue Rechenumgebung erstellst, falls du den Angebotspreis änderst. Weitere Informationen findest du unter Preisverlauf für Spot Instances.
**Hinweis:**AWS Batch erstellt Spot-Flottenanfragen in deinem Namen. Ändere Spot-Flottenanfragen nicht manuell, da deine Rechenumgebung sonst möglicherweise ungültig wird.
Wenn die neuesten Ereignisse der Auto-Scaling-Gruppe nur erfolgreiche Ereignisse anzeigen, führe die Schritte im folgenden Abschnitt aus.
IAM-Rolle der Container-Instance überprüfen
Führe die folgenden Schritte aus:
- Öffne die AWS Batch-Konsole.
- Wähle im Navigationsbereich Umgebungen und dann deine Rechenumgebung aus.
- Notiere dir auf der Registerkarte Details den Namen der Instance-Rolle.
- Öffne die IAM-Konsole.
- Gib im Suchfeld den Namen der Instance-Rolle ein und wähle dann deine Instance-Rolle aus.
- Wähle die Registerkarte Berechtigungen aus. Bestätige im Abschnitt Berechtigungsrichtlinien, dass du die verwaltete Richtlinie AmazonEC2ContainerServiceforEC2Role an die Rolle angehängt haben. Wenn du die Richtlinie angehängt hast, fahre mit Schritt 11 fort.
- Wähle Berechtigungen hinzufügen und dann Richtlinien anfügen aus.
- Gib im Abschnitt Andere Berechtigungsrichtlinien AmazonEC2ContainerServiceforEC2Role in das Suchfeld ein.
- Wähle AmazonEC2ContainerServiceforEC2Role aus und klicke dann auf Berechtigungen hinzufügen.
- Wähle die Registerkarte Vertrauensbeziehungen und dann Vertrauensrichtlinie bearbeiten aus.
- Vergewissere dich, dass die Vertrauensrichtlinie die folgende Anweisung enthält:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- Wenn die Vertrauensrichtlinie die vorhergehende Anweisung enthält, wähle Abbrechen aus. Wenn die Vertrauensrichtlinie die vorhergehende Anweisung nicht enthält, füge die Anweisung deiner Richtlinie hinzu. Wähle Richtlinie aktualisieren aus.
Wenn deine Instance immer noch nicht dem Amazon ECS-Cluster beitritt, führe die Schritte im folgenden Abschnitt aus.
Netzwerk- und Sicherheitseinstellungen der Rechenumgebung überprüfen
Führe die folgenden Schritte aus:
- Öffne die AWS Batch-Konsole.
- Wähle im Navigationsbereich Umgebungen und dann deine Rechenumgebung aus.
- Notiere dir im Abschnitt Rechenressourcen die Werte für Subnetze und Sicherheitsgruppen.
- Öffne die Amazon Virtual Private Cloud (Amazon VPC)-Konsole.
- Wähle im Navigationsbereich die Option Subnetze aus.
- Wähle jedes Subnetz in der Rechenumgebung aus und identifiziere dann auf der Registerkarte Details die Werte für die Automatische Zuweisung öffentlicher IPv4-Adressen.
Wenn der Wert Öffentliche IPv4-Adresse automatisch zuweisen Ja lautet, verfügen die im Subnetz gestarteten Instances über folgende Eigenschaften:
Eine öffentliche IPv4-Adresse
Eine Routing-Tabelle mit einem Routenziel von 0.0.0.0/0
Ein Internet-Gateway, das auf Ziel gesetzt ist, zum Beispiel igw-1a2b3c4d
Wenn der Wert Öffentliche IPv4-Adresse automatisch zuweisen Nein lautet, verfügen die im Subnetz gestarteten Instances über folgende Eigenschaften:
Eine private IPv4-Adresse
Eine Routing-Tabelle mit einem Routenziel von 0.0.0.0/0
Ein NAT-Gateway, zum Beispiel nat-12345678901234567, das auf Ziel gesetzt ist
Hinweis: Weitere Informationen findest du unter Routing. - Wähle im Navigationsbereich Sicherheitsgruppen aus.
- Wähle für jede Sicherheitsgruppe in der Rechenumgebung die Registerkarte Ausgangsregeln aus. Stelle anschließend sicher, dass eine Regel mit den folgenden Einstellungen vorhanden ist:
Wähle unter Typ die Option All Traffic aus.
Wähle für Protokoll die Option All aus.
Wähle für Port-Bereich die Option All aus.
Wähle als Ziel 0.0.0.0/0 aus.
Wichtig: Wenn die Regel nicht existiert, wähle Aktionen und dann Ausgehende Regeln bearbeiten aus. Erstelle dann die Regel. Für eine restriktivere Regel für ausgehenden Datenverkehr wähle HTTPS (443) für Typ und 0.0.0.0/0 für Ziel aus. - Wähle im Navigationsbereich Netzwerk-ACLs aus.
- Wähle die Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL) der VPC aus.
- Vergewissere dich auf den Registerkarten Eingehende Regeln und Ausgehende Regeln, dass die Netzwerk-ACL den gesamten Traffic in und aus den zugehörigen Subnetzen zulässt.
Wichtig: Wenn du die Netzwerk-ACL geändert hast, füge eine Regel hinzu, die den ausgehenden IPv4-HTTPS-Traffic vom Subnetz ins Internet zulässt. Weitere Informationen findest du unter Steuern des Datenverkehrs zu deinen AWS-Ressourcen mithilfe von Sicherheitsgruppen und Steuern des Subnetz-Datenverkehrs mithilfe von Netzwerkzugriffskontrolllisten. Um die VPC, die Subnetze oder Sicherheitsgruppen zu ändern, erstellen Sie eine neue Rechenumgebung.
Wenn deine Instance dem Amazon ECS-Cluster immer noch nicht beitritt, stelle eine Verbindung zu deiner Instance her. Überprüfe dann den Status des Docker-Daemon und des Amazon ECS-Container-Agent. Weitere Informationen findest du unter Wie behebe ich Probleme mit einem getrennten Amazon ECS-Agent?
Hinweis: Verwende AWS CloudTrail, um weitere Fehler bei einem AWS Batch-Auftrag zu beheben, der im RUNNABLE-Status feststeckt. Setze das Username-Attribut auf aws-batch, um nach Fehlern zu suchen, die bei geplanten Aufgaben auftreten.
Ähnliche Informationen
Mithilfe von SSH eine Verbindung zur Linux-Instance herstellen
Mithilfe von RDP eine Verbindung zur Windows-Instance herstellen

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 6 Monaten