Direkt zum Inhalt

Wie überwache ich eine hohe Ressourcennutzung in ECS-Aufgaben und -Services?

Lesedauer: 3 Minute
0

Wenn ich Anwendungen auf Amazon Elastic Container Service (Amazon ECS) ausführe, erlebe ich einen hohen Ressourcenverbrauch.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Troubleshooting errors for the AWS CLI (Problembehandlung bei der AWS CLI). Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Wichtige Metriken überwachen

Verwende Amazon CloudWatch, um ECS-Service-Level-Metriken zu verfolgen. Um detailliertere Informationen zur Ressourcennutzung zu erhalten, aktiviere Container Insights oder Container Insights mit erweiterter Beobachtbarkeit und überprüfe die Metriken zur CPU-Auslastung und Speichernutzung.

CloudWatch-Protokolle analysieren

Führe eine Beispielabfrage aus, um deine Protokolle auf hohe Ressourcennutzung, „Out of Memory“-Ereignisse (OOM) oder Anwendungsfehler zu analysieren. Optimiere die Aufgabendefinition auf Grundlage der von dir gefundenen Probleme. Weitere Informationen findest du unter Analyzing log data with CloudWatch Logs Insights (Analyse von Protokolldaten mit CloudWatch Logs Insights).

Um die Speichernutzung zu überprüfen, führe die folgende Abfrage aus:

stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
| filter Type = "Task" | sort period desc, TaskDefinitionFamily | limit 10

Fehlerbehebung bei unerwarteten Aufgabenstopps

Wenn deine ECS-Aufgabe unerwartet stoppt, kannst du mit der API DescribeTasks den stoppedReason und den exitCode des Containers überprüfen, um die Ursache zu ermitteln. Weitere Informationen findest du unter Warum wurde meine Amazon ECS-Aufgabe angehalten?

ECS Exec verwenden

Verwende ECS Exec aus der AWS CLI, um Befehle innerhalb deiner Container auszuführen und Informationen zur Ressourcennutzung anzuzeigen.

Potenzielle Probleme beheben

Überprüfe bei Speicherlecks die Anwendungsprotokolle und -prozesse, um die Quelle des Speicherlecks zu lokalisieren.

Erhöhe bei hoher CPU-Auslastung die Task-CPU-Zuweisung oder führe ein Upgrade auf einen größeren Instance-Typ durch.

Führe bei Speicherplatzproblemen den folgenden Befehl aus, um Dateien zu identifizieren, die größer als 50 MB sind:

find / -type f -size +50000k -exec ls -lh {} \; 2>/dev/null

Um den Speicherplatz zu erhöhen, siehe Wie kann ich den Festplattenspeicher für meinen Amazon ECS-Container auf AWS Fargate erhöhen?

Tests durchführen und die Ressourcenzuweisung optimieren

Zur Ermittlung der optimalen Ressourcenzuweisung für deine Anwendungen kannst du Tools verwenden, um Tests durchzuführen. Aktualisiere dann deine Aufgabendefinitionen und Service-Konfigurationen auf Grundlage der Ergebnisse. Ändere die CPU- und Speicherkapazität in deinen Aufgabendefinitionen auf Grundlage deiner Nutzungsmuster. Verwende Application Auto Scaling, um wechselnde Workloads effizient zu verwalten.

Die Kapazität der Instance überprüfen

Vergewissere dich, dass deine Container-Instances über genügend Ressourcen für deine Aufgaben verfügen. Verwende Kapazitätsanbieter, um deine Cluster-Kapazität automatisch anzupassen.

CloudWatch-Alarme einrichten

Erstelle Alarme für Metriken wie CPU-Auslastung, Speichernutzung und Anwendungsfehlerraten. Konfiguriere Benachrichtigungen, die dich beim Überschreiten von Schwellenwerten alarmieren.

Weitere Informationen

Wie mounte ich ein Amazon EFS-Dateisystem auf einem Amazon ECS-Container oder einer Amazon ECS-Aufgabe, die auf Fargate ausgeführt wird?

Container Insights with enhanced observability now available in Amazon ECS (Container Insights mit verbesserter Beobachtbarkeit sind jetzt in Amazon ECS verfügbar)

Amazon ECS CloudWatch metrics (Amazon ECS-CloudWatch-Metriken)

Monitor Amazon ECS using CloudWatch (Amazon ECS mit CloudWatch überwachen)

AWS OFFICIALAktualisiert vor 5 Monaten