Verwaltung des Container-Swap-Speicherplatzes bei Amazon ECS - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung des Container-Swap-Speicherplatzes bei Amazon ECS

Mit Amazon ECS können Sie die Nutzung von Swap-Speicherplatz auf Ihren Linux-basierten EC2 Amazon-Instances auf Containerebene steuern. Bei der Verwendung einer Auslagerungskonfiguration pro Container kann die Auslagerung für jeden Container innerhalb einer Aufgabendefinition aktiviert oder deaktiviert sein. Für diejenigen, für die sie aktiviert ist, kann die maximale Menge des verwendeten Auslagerungsbereichs begrenzt sein. Beispielsweise kann die Auslagerung bei latenzkritischen Containern deaktiviert sein. Im Gegensatz dazu kann bei Containern mit hohem transienten Speicherbedarf Swap aktiviert sein, um die Wahrscheinlichkeit von out-of-memory Fehlern zu verringern, wenn der Container ausgelastet ist.

Die Auslagerungskonfiguration für einen Container wird mit den folgenden Container-Definitionsparametern verwaltet.

maxSwap

Die Gesamtmenge des Auslagerungsspeichers (in MiB), den ein Container verwenden kann. Dieser Parameter wird in die --memory-swap Option to Docker Run übersetzt, wobei der Wert die Summe aus dem Container-Speicher plus dem maxSwap Wert ist.

Wenn als maxSwap-Wert 0 angegeben wird, verwendet der Container keine Auslagerung. Zulässige Werte sind 0 oder eine beliebige positive Ganzzahl. Wenn der Parameter maxSwap weggelassen wird, verwendet der Container die Swap-Konfiguration für die Container-Instance, auf der er ausgeführt wird. Es muss ein Wert für maxSwap festgelegt werden, damit der Parameter swappiness verwendet werden kann.

swappiness

Auf diese Weise können Sie das Speicherauslagerungsverhalten eines Containers optimieren. Ein swappiness-Wert von 0 führt dazu, dass keine Auslagerung stattfindet, es sei denn, dies ist absolut notwendig. Ein swappiness-Wert von 100 führt dazu, dass Seiten aggressiv ausgelagert werden. Akzeptierte Werte sind Ganzzahlen zwischen 0 und 100. Wenn der Parameter swappiness nicht angegeben wird, wird der Standardwert 60 verwendet. Wenn kein Wert für maxSwap angegeben ist, wird dieser Parameter ignoriert. Dieser Parameter ist der --memory-swappiness Option zum Ausführen von Docker zugeordnet.

Im folgenden Beispiel wird die JSON Syntax bereitgestellt.

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

Überlegungen

Beachten Sie Folgendes, wenn Sie eine Auslagerungskonfiguration pro Container verwenden.

  • Der Swap-Speicherplatz muss auf der EC2 Amazon-Instance, die Ihre Aufgaben hostet, aktiviert und zugewiesen sein, damit die Container ihn verwenden können. Standardmäßig ist bei den ECS Amazon-Optimierten AMIs kein Swap aktiviert. Sie müssen die Auslagerung auf der Instance aktivieren, um dieses Feature verwenden zu können. Weitere Informationen finden Sie unter Instance Store Swap Volumes im EC2Amazon-Benutzerhandbuch oder Wie weise ich mithilfe einer Swap-Datei Speicher zu, der als Swap-Speicherplatz in einer EC2 Amazon-Instance verwendet werden soll? .

  • Die Definitionsparameter des Swap-Space-Containers werden nur für Aufgabendefinitionen unterstützt, die den EC2 Starttyp angeben. Diese Parameter werden nicht für Aufgabendefinitionen unterstützt, die nur für die Verwendung durch Amazon ECS on Fargate vorgesehen sind.

  • Dieses Feature wird nur für Linux-Container unterstützt. Windows-Container werden derzeit nicht unterstützt.

  • Wenn die Container-Definitionsparameter maxSwap und swappiness in einer Aufgabendefinition weggelassen werden, hat jeder Container den swappiness-Standardwert 60. Darüber hinaus ist die gesamte Swap-Nutzung auf das Zweifache des Speichers des Containers begrenzt.

  • Wenn Sie Aufgaben auf Amazon Linux 2023 verwenden, wird der swappiness-Parameter nicht unterstützt.