Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion de l'espace mémoire d'échange de conteneurs sur Amazon ECS
Avec AmazonECS, vous pouvez contrôler l'utilisation de l'espace mémoire de swap sur vos instances EC2 Amazon basées sur Linux au niveau du conteneur. En utilisant une configuration d'échange par conteneur, l'échange peut être activé ou désactivé pour chaque conteneur au sein d'une définition de tâche. Pour ceux qui l'ont activé, la quantité maximale d'espace d'échange utilisée peut être limitée. Par exemple, l'échange peut être désactivé dans les conteneurs sensibles à la latence. En revanche, les conteneurs présentant des demandes de mémoire transitoire élevées peuvent avoir le swap activé afin de réduire les risques d' out-of-memoryerreurs lorsque le conteneur est en charge.
La configuration d'échange pour un conteneur est gérée par les paramètres de définition de conteneur suivants :
maxSwap
-
Quantité totale de mémoire d'échange (en Mio) qu'un conteneur peut utiliser. Ce paramètre est traduit en
--memory-swap
option d'exécution de docker où la valeur est la somme de la mémoire du conteneur plus lamaxSwap
valeur.Si la valeur
0
est spécifiée pourmaxSwap
, le conteneur n'utilise pas l'échange. Les valeurs acceptées sont0
ou n'importe quel nombre entier positif. Si le paramètremaxSwap
n'est pas spécifié, le conteneur utilise la configuration d'échange pour l'instance de conteneur sur laquelle il s'exécute. Une valeurmaxSwap
doit être définie pour que le paramètreswappiness
soit utilisé. swappiness
-
Vous pouvez utiliser ce paramètre pour régler le comportement d'échange de mémoire d'un conteneur. Une valeur
swappiness
de0
fait que l'échange ne se produit pas, sauf si nécessaire. Avec la valeurswappiness
pour100
, l'échange de pages a lieu de manière agressive. Les valeurs acceptées sont les nombres entiers compris entre0
et100
. Si le paramètreswappiness
n'est pas spécifié, la valeur par défaut60
est utilisée. Si aucune valeur n'est spécifiée pourmaxSwap
, le paramètre est ignoré. Ce paramètre correspond à l'--memory-swappiness
option docker run.
Dans l'exemple suivant, la JSON syntaxe est fournie.
"containerDefinitions": [{
...
"linuxParameters": {
"maxSwap": integer
,
"swappiness": integer
},
...
}]
Considérations
Tenez compte des points suivants lorsque vous utilisez une configuration d'échange par conteneur.
-
L'espace de swap doit être activé et alloué sur l'EC2instance Amazon hébergeant vos tâches pour que les conteneurs puissent être utilisés. Par défaut, le swap n'est AMIs pas activé pour les Amazon ECS optimisés. Vous devez activer l'échange sur l'instance pour utiliser cette fonction. Pour plus d'informations, consultez Instance Store Swap Volumes dans le guide de EC2 l'utilisateur Amazon ou Comment allouer de la mémoire pour qu'elle fonctionne comme espace de swap dans une EC2 instance Amazon ?
. -
Les paramètres de définition du conteneur d'espace d'échange ne sont pris en charge que pour les définitions de tâches qui spécifient le type de EC2 lancement. Ces paramètres ne sont pas pris en charge pour les définitions de tâches destinées uniquement à Amazon ECS on Fargate.
-
Cette fonction est uniquement prise en charge pour les conteneurs Linux. Les conteneurs Windows ne sont pas pris en charge actuellement.
-
Si les paramètres de définition de conteneur
maxSwap
etswappiness
sont omis d'une définition de tâche, chaque conteneur a une valeurswappiness
par défaut de60
. De plus, l'utilisation totale du swap est limitée à deux fois la mémoire du conteneur. -
Si vous utilisez des tâches sur Amazon Linux 2023, le paramètre
swappiness
n'est pas pris en charge.