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 dafür, dass Jobs in RUNNABLE ohne StatusReason hängen bleiben
Falls Sie kein Ereignis von CloudWatch Events erhalten haben oder ein Ereignis aus unbekanntem Grund erhalten haben, finden Sie hier einige der häufigsten 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, Sie basieren Ihr Computerressourcen-AMI 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: 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, dass Ihr Job 4 GiB Arbeitsspeicher spezifiziert und für Ihre Rechenressourcen weniger als der verfügbare Speicherplatz zur Verfügung steht. 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.
- Amazon EC2 EC2-Instance-Limit erreicht
-
Die Anzahl der Amazon EC2 EC2-Instances, in denen Ihr Konto starten kann, AWS-Region wird durch Ihr EC2-Instance-Kontingent bestimmt. 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 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-Skripts 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 sind die Instances nie für die Annahme von Jobs verfügbar, sodass alle Jobs im
RUNNABLEStatus hängen bleiben. Alle Benutzerdatenskripts müssen abgeschlossen sein, bevor sich eine Instance bei Amazon ECS registrieren und Jobs ausführen 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 EC2-Startvorlagen mit AWS Batch.
Weitere Informationen finden Sie unter Warum bleibt mein AWS Batch Job im Status hängenRUNNABLE in re:POST.