Gestione dello spazio di memoria di swap dei container su Amazon ECS - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione dello spazio di memoria di swap dei container su Amazon ECS

Con AmazonECS, puoi controllare l'utilizzo dello spazio di memoria di swap sulle tue istanze EC2 Amazon basate su Linux a livello di container. Utilizzando una configurazione swap per container, ogni container all'interno di una definizione di attività può avere lo swap abilitato o disabilitato. Per chi lo ha abilitato, la quantità massima di spazio di swap utilizzato può essere limitata. Ad esempio, i container critici per la latenza possono avere lo swap disabilitato. Al contrario, i contenitori con elevate richieste di memoria transitoria possono avere lo swap attivato per ridurre le possibilità di out-of-memory errori quando il contenitore è sotto carico.

La configurazione di swap per un container viene gestita dai seguenti parametri di definizione del container.

maxSwap

La quantità totale di memoria di swap (in MiB) che un container può utilizzare. Questo parametro viene convertito nell'opzione --memory-swap in docker run dove il valore sarebbe la somma della memoria del container più il valore maxSwap.

Se viene specificato il valore maxSwap di 0, il container non utilizzerà lo swap. I valori accettati sono 0 o qualsiasi numero intero positivo. Se il parametro maxSwap viene omesso, il container utilizza la configurazione di swap per l'istanza di container su cui è in esecuzione. È necessario impostare un valore maxSwap per il parametro swappiness da utilizzare.

swappiness

In questo modo è possibile ottimizzare il comportamento swappiness di memoria di un container. Un valore swappiness di 0 fa sì che swap non si verifichi se non richiesto. Un valore swappiness di 100 produrrà lo swap delle pagine in modo aggressivo. I valori accettati sono numeri interi compresi tra 0 e 100. Se il parametro swappiness non è specificato, viene utilizzato un valore predefinito 60. Se non viene specificato un valore per maxSwap, questo parametro verrà ignorato. Questo parametro è mappato all'opzione --memory-swappiness su docker run.

Nell'esempio seguente, viene fornita la JSON sintassi.

"containerDefinitions": [{ ... "linuxParameters": { "maxSwap": integer, "swappiness": integer }, ... }]

Considerazioni

Quando utilizzi una configurazione swap container, considera quanto segue:

  • Lo spazio di swap deve essere abilitato e allocato sull'EC2istanza Amazon che ospita le tue attività affinché i contenitori possano essere utilizzati. Per impostazione predefinita, gli Amazon ECS Optimized AMIs non hanno lo swap abilitato. È necessario abilitare lo swap sull'istanza per utilizzare questa funzionalità. Per ulteriori informazioni, consulta Instance Store Swap Volumes nella Amazon EC2 User Guide o Come posso allocare la memoria per funzionare come spazio di swap in un'EC2istanza Amazon utilizzando un file di swap? .

  • I parametri di definizione del contenitore dello spazio di scambio sono supportati solo per le definizioni delle attività che specificano il tipo di EC2 avvio. Questi parametri non sono supportati per le definizioni delle attività destinate esclusivamente all'uso di Amazon ECS on Fargate.

  • Questa caratteristica è supportata solo per i container Linux. Al momento i container Windows non sono supportati.

  • Se i parametri maxSwap e swappiness di definizione del container vengono omessi da una definizione di attività, ogni container avrà un valore swappiness predefinito di 60. Inoltre, l'utilizzo totale dello swap è limitato a due volte la memoria del contenitore.

  • Se utilizzi le attività su Amazon Linux 2023, il parametro swappiness non è supportato.