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.
Häufige Ursachen für Jobs, die ohne StatusReason in RUNNABLE hängen bleiben
Falls Sie kein Ereignis von CloudWatch Events erhalten haben oder das Ereignis mit unbekanntem Grund erhalten haben, finden Sie hier einige häufige Ursachen für dieses Problem.
- Der
awslogsProtokolltreiber 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, Ihr Rechenressourcen-AMI basiert auf dem für Amazon ECS optimierten AMI (oder Amazon Linux). Dann ist dieser Treiber standardmäßig imecs-initPaket registriert. Nehmen wir nun an, Sie verwenden ein anderes Basis-AMI. Anschließend müssen Sie überprüfen, ob derawslogsProtokolltreiber als verfügbarer Protokolltreiber mit derECS_AVAILABLE_LOGGING_DRIVERSUmgebungsvariablen angegeben ist, wenn der Amazon ECS-Container-Agent gestartet wird. Weitere Informationen erhalten Sie unter AMI-Spezifikation für Rechenressourcen und Tutorial: Ein Rechenressourcen-AMI erstellen. - Ungenügende Ressourcen
-
Wenn Ihre Auftragsdefinitionen mehr CPU- oder Speicherressourcen angeben, als Ihre Rechenressourcen zuweisen können, werden Ihre Jobs niemals platziert. Nehmen wir zum Beispiel an, dass Ihr Job 4 GiB Arbeitsspeicher spezifiziert und für Ihre Rechenressourcen weniger verfügbar sind. 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 Erstellen einer VPC.
- Das Amazon EC2-Instance-Limit wurde erreicht
-
Die Anzahl der Amazon EC2-Instances, in denen Ihr Konto gestartet werden kann, hängt von Ihrem EC2-Instance-Kontingent ab. AWS-Region Bestimmte Instance-Typen haben auch ein Kontingent pro Instance-Typ. Weitere Informationen zum Amazon EC2-Instance-Kontingent Ihres Kontos, einschließlich der Beantragung einer Limiterhöhung, finden Sie unter Amazon EC2 Service Limits im Amazon EC2-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-optimierten AMIs installiert. Weitere Informationen zum Amazon ECS-Container-Agenten finden Sie unter Amazon ECS-Container-Agent im Amazon Elastic Container Service Developer Guide.
- Long-running Benutzerdaten-Skripte in einer Startvorlage
-
Wenn Ihre Startvorlage ein Benutzerdatenskript enthält, dessen Fertigstellung viel Zeit in Anspruch nimmt, kann es bei Instances zu einem Timeout kommen, bevor sie sich bei Amazon ECS registrieren. In diesem Fall stehen die Instances nie wieder zur Verfügung, um Jobs abzuholen, sodass alle Jobs im
RUNNABLEStatus hängen bleiben. Alle Benutzerdatenskripts müssen abgeschlossen sein, bevor sich eine Instance bei Amazon ECS registrieren und mit der Ausführung von Jobs beginnen kann.Um dieses Problem zu beheben, überprüfen Sie die Benutzerdaten Ihrer Startvorlage auf lang andauernde oder blockierende Vorgänge. Erwägen Sie, Skripts zu optimieren, um die Ausführungszeit zu verkürzen, unkritische Operationen asynchron auszuführen oder die Initialisierungslogik vollständig aus den Benutzerdaten zu entfernen. Weitere Informationen finden Sie unter Verwenden Sie Amazon EC2-Startvorlagen mit AWS Batch.
Weitere Informationen finden Sie unter Warum bleibt mein AWS Batch Job im Status hängen? RUNNABLE