Wie behebe ich Probleme mit langen Antwortzeiten in ECS?
Ich möchte Probleme mit hohen Antwortzeiten und Latenzen bei meinen Amazon Elastic Container Service (Amazon ECS)-Aufgaben beheben.
Lösung
Deine Amazon ECS-Service-Level-Metriken überprüfen
Eine höhere CPU- und Speicherauslastung kann zu hohen Antwortlatenzen bei den Amazon ECS-Aufgaben führen. Verwende Amazon CloudWatch-Metriken, um die CPU- und Speicherauslastung auf Service-Ebene einzusehen. Wenn du CloudWatch Container Insights aktiviert hast, prüfe die CPU- und Speicherauslastung auf Containerebene. Wenn du Container Insights nicht aktiviert hast, siehe Wie konfiguriere ich CloudWatch Container Insights, um meine Amazon ECS-Aufgaben und die Container-Instance zu überwachen?
Wenn die Container deiner Anwendung CPU-intensive Workloads ausführen müssen, solltest du ein Upgrade auf eine größere Aufgabengröße durchführen, die mehr virtuelle CPU (vCPU) und Arbeitsspeicher umfasst. Alternativ kannst du das Application Auto Scaling aktivieren.
Amazon ECS-Aufgaben im Amazon EC2-Starttyp
Überprüfe die CPU- und Speicherauslastung der Amazon Elastic Cloud Compute (Amazon EC2)-Instance deiner Amazon ECS-Aufgaben, die den Amazon EC2-Starttyp verwenden.
Verwende CloudWatch-Metriken zur Überwachung der Netzwerkleistung deiner Amazon EC2-Instance. Wenn die Netzwerkbandbreite der Instance die verfügbare Basisbandbreite der Instance übersteigt, verwende einen größeren Instance-Typ mit hoher Basisbandbreite.
Verwende die CloudWatch-Metrik CPUUtilization, um die CPU-Auslastung der Instance zu überwachen. Außerdem solltest du dich bei deiner Instance anmelden, um die Speichernutzung zu überprüfen. Wenn die CPU- oder Speicherauslastung hoch ist, füge dem Cluster weitere Instances hinzu, um die Aufgaben auf mehrere Instances zu verteilen. Alternativ kannst du die Instance auf einen größeren Instance-Typ umstellen.
Überprüfe die Anwendungsprotokolle, um festzustellen, ob es eine hohe Antwortlatenz von einem nachgeschalteten Service gibt. Es ist ein bewährtes Verfahren, AWS X-Ray zu aktivieren, um Latenzprobleme zu beheben.
Die Antwortlatenz messen
Wenn sich der Amazon ECS-Service hinter einem Application Load Balancer befindet, verwende die TargetResponseTime CloudWatch Metrik, um die Antwortzeit zu messen. Diese Metrik gibt die durchschnittliche Antwortzeit für Anfragen an, die über den Application Load Balancer geleitet werden. Wenn der Wert hoch ist, kann es zu Verzögerungen in der Backend-Anwendung oder der Infrastruktur kommen.
Um die Antwortlatenz direkt vom Container aus zu messen, melde dich beim Anwendungscontainer an. Für Aufgaben vom Typ Amazon EC2-Start führe den Befehl Docker exec -it container id aus, um dich bei dem Container anzumelden. Bei Aufgaben, die den Starttyp Fargate verwenden, melde dich mit ECS exec bei dem Container an.
Führe dann den folgenden Befehl aus, um die Antwortlatenz zu messen:
curl -kso /dev/null -w "\n===============\n | Connect: %{time_connect}\n | App connect: %{time_appconnect}\n | Pre-transfer: %{time_pretransfer}\n | Time to First Byte (TTFB): %{time_starttransfer}\n | Total: %{time_total}\n | HTTP Code: %{http_code}\n===============\n" http://localhost:port/endpoint
Hinweis: Ersetze den Port durch deinen Container-Port und Endpunkt durch deinen Endpunkt.
In der Ausgabe des vorhergehenden Befehls zeigt das Feld „Time to First Byte (TTFB)“ die Zeit an, die bis zum Eintreffen des ersten Bytes vergeht. Die Ausgabe enthält auch die Verarbeitungszeit des Servers. Wenn die Bearbeitungszeit hoch ist, braucht die Anwendung länger, um die Anfrage zu bearbeiten.
Ähnliche Informationen
Wie behebe ich eine hohe CPU-Auslastung bei einer Amazon ECS-Aufgabe auf AWS Fargate?
Wie kann ich eine hohe Speicherauslastung für Amazon ECS-Aufgaben auf Fargate überwachen?
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 10 Monaten