2 votes

Tâche AWS ECS hors de la mémoire - Alarme Cloudwatch

J'ai un service ECS qui utilise plusieurs tâches afin d'exécuter un travail quotidien. La mémoire utilisée par chaque tâche varie en fonction des données qu'elle traite. J'ai défini 16 Go de RAM dans toutes mes tâches mais certaines tâches se sont arrêtées avec l'erreur suivante "OutOfMemory".

Malheureusement, je ne peux pas décomposer les données traitées par chaque tâche, car elles doivent être traitées toutes ensemble pour produire les informations que je souhaite.

Je sais comment configurer des alarmes pour les services ECS pour la RAM et le CPU. Mais la RAM et le CPU pour le service font référence à la moyenne du CPU et de la RAM pour toutes les tâches.

Comment puis-je définir une alarme afin qu'elle se déclenche lorsqu'une tâche manque de mémoire ? Existe-t-il un moyen suggéré pour ne pas rencontrer l'erreur OutOfMemory ?

1voto

mbaird Points 31293

Je crois que vous devez permettre ECS CloudWatch Container Insights (en anglais) pour obtenir l'utilisation de la mémoire par tâche et par conteneur. Une fois que vous aurez fait cela, vous commencerez à voir des mesures de l'utilisation de la mémoire des tâches (entre autres choses) dans CloudWatch pour lesquelles vous pourrez créer des alarmes.

Notez que l'activation de Container Insights entraîne un coût supplémentaire.


Y a-t-il un moyen suggéré pour ne pas rencontrer l'erreur OutOfMemory ?

Du point de vue de l'infrastructure, tout ce que vous pouvez faire est de commencer à provisionner plus de RAM pour vos tâches.

Du point de vue de l'application, vous pouvez analyser votre application pour détecter les fuites de mémoire, et examiner les structures de données que votre application crée en mémoire pour trouver des opportunités possibles, comme la réduction des données dupliquées en mémoire, ou le déplacement de certaines des données vers le disque, ou vers un cache distribué. Ce type de travail d'optimisation de la mémoire est extrêmement spécifique à l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X