Lorsque j'exécute des applications sur Amazon Elastic Container Service (Amazon ECS), j'utilise une grande quantité de ressources.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Surveiller les métriques clés
Utilisez Amazon CloudWatch pour suivre les métriques de niveau service ECS. Pour obtenir des informations plus détaillées sur l'utilisation des ressources, activez Container Insights ou Container Insights avec observabilité améliorée et vérifiez les métriques d'utilisation du processeur et de la mémoire.
Analyser les journaux CloudWatch
Exécutez un exemple de requête pour analyser vos journaux afin de détecter une utilisation élevée des ressources, des événements de mémoire insuffisante (OOM) ou des erreurs d'application. Optimisez la définition de tâche en fonction des problèmes que vous rencontrez. Pour en savoir plus, consultez la section Analyse des données de journal avec CloudWatch Logs Insights.
Pour vérifier l'utilisation de la mémoire, exécutez la requête suivante :
stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
| filter Type = "Task" | sort period desc, TaskDefinitionFamily | limit 10
Résoudre les problèmes d'arrêt de tâche inattendus
Si votre tâche ECS s'arrête de façon inattendue, utilisez l'API DescribeTasks pour vérifier StoppedReason et l’exitCode du conteneur afin d'en déterminer la cause. Pour plus d'informations, consultez la section Pourquoi ma tâche Amazon ECS est-elle arrêtée ?
Utiliser ECS Exec
Utilisez ECS Exec depuis l'AWS CLI pour exécuter des commandes dans vos conteneurs afin d'afficher les informations relatives à l'utilisation des ressources.
Résoudre les problèmes potentiels
Pour détecter les fuites de mémoire, consultez les journaux et les processus de l'application pour localiser la source de la fuite de mémoire.
Pour une utilisation élevée du processeur, augmentez l'allocation de processeur de tâche ou effectuez une mise à niveau vers un type d'instance plus important.
Pour les problèmes d'espace disque, exécutez la commande suivante pour identifier les fichiers dont la taille est supérieure à 50 Mo :
find / -type f -size +50000k -exec ls -lh {} \; 2>/dev/null
Pour augmenter votre espace disque, consultez la section Comment puis-je augmenter l'espace disque pour mon conteneur Amazon ECS sur AWS Fargate ?
Effectuer des tests et optimiser l'allocation de ressources
Pour déterminer l'allocation de ressources optimale pour vos applications, utilisez des outils pour effectuer des tests. Puis, mettez à jour vos définitions de tâches et vos configurations de service en fonction des résultats. Modifiez la capacité du processeur et de la mémoire dans vos définitions de tâches en fonction de vos habitudes d'utilisation. Utilisez Application Auto Scaling pour gérer efficacement l'évolution des charges de travail.
Vérifier la capacité d'instance
Assurez-vous que vos instances de conteneur disposent de ressources suffisantes pour vos tâches. Utilisez des fournisseurs de capacité pour ajuster automatiquement la capacité de votre cluster.
Configurer les alarmes CloudWatch
Créez des alarmes pour les métriques, par exemple pour l'utilisation du processeur, l'utilisation de la mémoire et les taux d'erreur d’application. Configurez des notifications pour vous avertir lorsque les seuils sont dépassés.
Informations connexes
Comment puis-je monter un système de fichiers Amazon EFS sur un conteneur Amazon ECS ou sur une tâche exécutée sur AWS Fargate ?
Container Insights avec observabilité améliorée est maintenant disponible dans Amazon ECS
Métriques Amazon ECS CloudWatch
Surveiller Amazon ECS à l'aide de CloudWatch