7

Je ne comprends pas très bien le but d'avoir des limites de mémoire matérielle et fixe pour les définitions de tâches ECS. IIRC La limite souple correspond à la quantité de mémoire que le planificateur réserve à une instance pour l'exécution de la tâche, et la limite maximale est la quantité de mémoire qu'un conteneur peut utiliser avant d'être assassiné. Mon problème est que si le planificateur ECS alloue des tâches à des instances basées sur la limite souple, vous pouvez avoir une situation où une tâche utilisant la mémoire au-dessus de la limite souple mais inférieure à la limite dure pourrait dépasser l'instance. mémoire max (en supposant que toutes les autres tâches utilisent une mémoire légèrement inférieure ou égale à leur limite souple).Limites matérielles et logicielles de mémoire de travail AWS ECS

Est-ce correct?

Merci

Répondre

8

Si vous prévoyez d'exécuter une charge de travail de calcul qui est principalement liée au lieu de la mémoire liée au CPU, alors vous ne devez utiliser que la limite dure, pas la limite douce. À partir des documents:

Vous devez spécifier un entier différent de zéro pour une ou les deux valeurs de mémoire ou de mémoireReservation dans les définitions de conteneur. Si vous spécifiez les deux, la mémoire doit être supérieure à memoryReservation. Si vous spécifiez memoryReservation, cette valeur est soustraite des ressources de mémoire disponibles pour l'instance de conteneur sur laquelle le conteneur est placé; sinon, la valeur de la mémoire est utilisée.

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html

En spécifiant seulement une limite de mémoire difficile pour vos tâches vous éviter de manquer de mémoire car ECS cesse de placer les tâches sur l'instance, et docker tue tous les conteneurs qui tentent d'aller sur la limite dure. La fonction de limitation de la mémoire souple est conçue pour les applications liées à la CPU où vous souhaitez réserver un minimum de mémoire (la limite souple), mais autoriser des rafales occasionnelles jusqu'à la limite maximale. Dans ce type de charge de travail, vous ne vous préoccupez pas vraiment de la valeur spécifique de l'utilisation de la mémoire pour les conteneurs, car les conteneurs seront épuisés longtemps avant d'épuiser la mémoire de l'instance. sur la réservation du CPU et la limite de la mémoire Dans cette configuration, la limite stricte est juste une sécurité intégrée au cas où quelque chose échappe à tout contrôle ou s'il y a une fuite de mémoire. Donc, en résumé, vous devriez évaluer votre charge de travail en utilisant des tests de charge et voir si elle a tendance à manquer d'abord de CPU ou de mémoire. Si vous êtes lié à l'UC, vous pouvez utiliser la limite de mémoire souple avec une limite fixe optionnelle, tout comme une sécurité intégrée. Si vous êtes lié à la mémoire, vous devrez utiliser uniquement la limite stricte sans limite souple.

+0

est logique - merci beaucoup pour votre aide monsieur – maambmb