New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie behebe ich Probleme mit Latenz bei Aufrufen oder Anforderungen an Amazon ECS-Aufgaben?
Ich möchte Fehler in meiner Amazon Elastic Container Service (Amazon ECS)-Anwendung beheben, die langsam auf Anforderungen reagiert.
Kurzbeschreibung
Im Folgenden sind häufige Ursachen für eine hohe Latenz bei ECS-Aufgaben aufgeführt:
- Hohe CPU- oder Speicher (RAM)-Auslastung bei Aufgaben.
- Probleme mit Anwendungsabhängigkeiten, die innerhalb der Anwendung ausgeführt werden.
- Große Netzwerkdistanz zwischen Clients oder On-Premises-Zielen und ECS-Aufgaben.
- Probleme mit der Netzwerkkonnektivität, Überlastungen.
- Volume-Drosselung im Amazon Elastic Block Store (Amazon EBS).
Um diese Probleme zu untersuchen und zu lösen, versuche zunächst herauszufinden, wo die Verzögerung auftritt, und führe dann die Lösungsschritte durch.
Lösung
Gehe wie folgt vor, um Probleme mit hoher Latenz bei ECS-Aufgaben zu beheben:
-
Führe den folgenden Befehl aus, um die erste Byte-Antwort zu messen und nach einer langsamen DNS-Auflösung zu suchen, die zu Latenz führen kann:
% curl -kso /dev/null -w "\n=============== | DNS lookup: %{time_namelookup} | Connect: %{time_connect}| App connect: %{time_appconnect} | Pre-transfer: %{time_pretransfer} | Start transfer: %{time_starttransfer} | Total: %{time_total} | HTTP Code: %{http_code}\n===============\n" https://LOAD_BALANCER_DNS_NAME.com Example output: | DNS lookup: 0.035596 | Connect: 0.063130 | App connect: 0.159145 | Pre-transfer: 0.159264 | Start transfer: 0.190203 | Total: 0.190722 | HTTP Code: 200
Hinweis: Die vorhergehende Beispielausgabe erfolgt in ms-Zeitrahmen. Es hat sich bewährt, die ersten Tests innerhalb der VPC durchzuführen, um die Variablen zu reduzieren, die an verschiedenen Netzwerkpfaden beteiligt sind.
-
Umgehe als Nächstes den Load Balancer. Verwende eine Aufgaben-IP-Adresse für eine bekannte Aufgabe, die ausgeführt wird, um die vorhergehende curl zu steuern. Dieser Prozess hilft dabei, die Komponente zu isolieren, die Latenz verursacht.
-
Wenn es einen Application Load Balancer gibt, überprüfe die Durchschnittsstatistik der TargetResponseTime-Metrik von Amazon CloudWatch auf überhöhte Werte.
Wenn der Wert hoch ist, hast du ein Problem mit den Aufgaben oder möglicherweise eine Abhängigkeit der Anwendung von externen Verbindungen. Weitere Informationen findest du unter Wie behebe ich einen Anstieg der TargetResponseTime-Metrik für einen Application Load Balancer?
Wenn es eine große Anzahl von Aufgaben gibt, aktiviere und überprüfe die Zugriffsprotokolleinträge des Application Load Balancers, um die Backend-Instances zu identifizieren.
-
Um Probleme mit dem Application Load Balancer zu bestätigen, überprüfe die Felder request_processing_time und response_processing_time in den Protokolleinträgen auf ungewöhnlich lange Zeiträume. Weitere Informationen findest du unter Wie behebe ich Probleme mit hoher Latenz auf meinem Application Load Balancer in Elastic Load Balancing? Wenn du curl direkt auf die Task-IP-Adresse anwendest und eine langsame Antwort erhältst, überprüfe die CloudWatch Container Insights.
-
Wenn die CPU- und Speicherauslastung im Durchschnitt unter 90 % liegt und keine Spitzen auftreten, suche nach Abhängigkeiten von den Anwendungsaufgaben, die zu Latenz führen können. Zu den Abhängigkeiten gehören Aufrufe externer Ressourcen wie Amazon Simple Storage Service (Amazon S3)-Buckets, Amazon Relational Database Service (Amazon RDS)-Datenbanken oder andere Remote-Webservices.
-
Wenn externe Aufrufe Teil des erwarteten Workflows der Anwendung sind, erkundige dich bei den Entwicklern der Anwendung, ob synchrone Aufrufe an externe Abhängigkeiten ausgeführt werden. Oder sperre die Anwendung, bis sie Antworten auf diese Aufrufe erhält. Weitere Informationen findest du unter Asynchrone Aufrufe verwalten.
-
Wenn du auf EC2-Container-Instances hostest, überprüfe alle Amazon EBS-Volumes und Netzwerkschnittstellen auf Anzeichen einer Überauslastung. Weitere Informationen findest du unter Wie behebe ich Leistungsprobleme mit dem EBS-Volume auf meiner EC2-Instance? Wenn Anzeichen einer EBS-Drosselung zu erkennen sind, überprüfe und erhöhe die von EBS bereitgestellten IOPS und den Durchsatztyp. Oder verwende eine andere Option, z. B. den Instance-Speicher oder den Elastic Fabric Adapter (EFA).
Wenn du Anzeichen einer Drosselung der Netzwerkschnittstelle feststellst, verwende einen größeren Instance-Typ mit mehr Netzwerkbandbreite. Oder verwende einen netzwerkoptimierten Instance-Typ, der eine größere optimierte Baseline bietet. Weitere Informationen findest du unter Warum überschreitet meine Amazon EC2-Instance ihre Netzwerklimits, wenn die durchschnittliche Auslastung niedrig ist?
-
Wenn du auf AWS Fargate hostest, überprüfe die Netzwerkschnittstellenmetriken bei einem Amazon ECS-Netzwerk-Sidecar-Container. Beachte, dass du die Bereitstellung mit einer neuen Aufgabendefinition durchführen musst, um einen Sidecar-Container hinzuzufügen.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 3 Monaten