Reservieren von Amazon ECS Linux-Container-Instance-Speicher - 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.

Reservieren von Amazon ECS Linux-Container-Instance-Speicher

Wenn der Amazon ECS-Container-Agent eine Container-Instance in einem Cluster registriert, muss der Agent ermitteln, wie viel Speicher die Container-Instance für Ihre Aufgaben zur Verfügung hat. Aufgrund des Speicher-Overheads der Plattform und des vom System-Kernel belegten Arbeitsspeichers weicht dieser Wert vom Wert des installierten Arbeitsspeichers ab, der für Amazon-EC2-Instances angegeben wird. Eine m4.large-Instance beispielsweise besitzt 8 GiB installierten Speicher. Dies bedeutet jedoch nicht immer, dass genau 8192 MiB Speicher für Aufgaben zur Verfügung stehen, wenn sich die Container-Instance registriert.

Der Amazon ECS-Container-Agent stellt eine Konfigurationsvariable namens bereitECS_RESERVED_MEMORY, mit der Sie eine bestimmte Anzahl von MiB Arbeitsspeicher aus dem Pool entfernen können, der Ihren Aufgaben zugewiesen ist. Damit wird dieser Arbeitsspeicher für wichtige Systemprozesse reserviert.

Wenn Sie den gesamten Speicher einer Container-Instance mit Ihren Aufgaben belegen, ist es möglich, dass Ihre Aufgaben mit kritischen Systemprozessen in Bezug auf den Arbeitsspeicher zu kämpfen haben und möglicherweise einen Systemausfall auslösen.

Wenn Sie beispielsweise ECS_RESERVED_MEMORY=256 in der Konfigurationsdatei Ihres Container-Agenten angeben, registriert der Agent den gesamten Arbeitsspeicher bis auf 256 MiB für diese Instance, und 256 MiB Arbeitsspeicher können nicht für ECS-Aufgaben zugeordnet werden. Weitere Informationen über die Konfigurationsvariablen des Agenten und ihre Einstellung finden Sie unter Konfiguration des Amazon-ECS-Container-Agenten und Bootstrapping von Amazon ECS-Linux-Container-Instances zur Datenübergabe.

Wenn Sie 8192 MiB für die Aufgabe angeben und keine Ihrer Container-Instances über 8192 MiB oder mehr Arbeitsspeicher verfügt, um diese Anforderung zu erfüllen, kann die Aufgabe nicht in Ihrem Cluster platziert werden. Wenn Sie eine verwaltete Rechenumgebung verwenden, AWS Batch müssen Sie einen größeren Instance-Typ starten, um der Anfrage gerecht zu werden.

Sie sollten außerdem etwas Arbeitsspeicher für den Amazon-ECS-Container-Agenten und andere wichtige Systemprozesse in Ihren Container-Instances reservieren, sodass die Container für Ihre Aufgaben nicht um denselben Arbeitsspeicher konkurrieren und möglicherweise einen Systemfehler auslösen.

Der Amazon-ECS-Container-Agent verwendet die Docker-Funktion ReadMemInfo() für die Abfrage des gesamten für das Betriebssystem verfügbaren Arbeitsspeichers. Sowohl Linux als auch Windows stellen Befehlszeilenprogramme zur Verfügung, mit denen der Gesamtspeicher ermittelt werden kann.

Beispiel – Bestimmung des Gesamtspeichers für Linux

Der Befehl free gibt Informationen darüber zurück, wie viel Speicher insgesamt vom Betriebssystem erkannt wird.

$ free -b

Beispielausgabe für eine m4.large-Instance, die das Amazon-ECS-optimierte Amazon Linux-AMI ausführt.

total used free shared buffers cached Mem: 8373026816 348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296

Diese Instance verfügt über 8373026816 Bytes Gesamtspeicher, und es stehen 7985 MiB für Aufgaben zur Verfügung.

Beispiel – Bestimmung des Gesamtspeichers für Windows

Der Befehl wmic gibt Informationen darüber zurück, wie viel Speicher insgesamt vom Betriebssystem erkannt wird.

C:\> wmic ComputerSystem get TotalPhysicalMemory

Beispielausgabe für eine m4.large Instance, auf der das Amazon ECS-optimierte Windows Server-AMI ausgeführt wird.

TotalPhysicalMemory 8589524992

Diese Instance verfügt über 8589524992 Bytes Gesamtspeicher, und es stehen 8191 MiB für Aufgaben zur Verfügung.

Speicher der Container-Instance anzeigen

Sie können in der Amazon ECS-Konsole (oder mit dem Instance-API-Vorgang) sehen, mit wie viel Speicher sich eine DescribeContainerContainer-Instance registriert. Wenn Sie versuchen, Ihre Ressourcennutzung zu maximieren, indem Sie Ihren Aufgaben so viel Speicher wie möglich für einen bestimmten Instance-Typ zur Verfügung stellen, können Sie den für diese Container-Instance verfügbaren Speicher beobachten und Ihren Aufgaben dann so viel Speicher zuweisen.

Um den Speicher der Container-Instance anzuzeigen
  1. Öffnen Sie die Konsole unter https://console.aws.amazon.com/ecs/v2.

  2. Wählen Sie im Navigationsbereich Clusters und dann den Cluster aus, der Ihre Container-Instance hostet.

  3. Wählen Sie Infrastruktur und dann unter Container-Instances eine Container-Instance aus.

  4. Im Abschnitt Ressourcen wird der registrierte und verfügbare Speicher für die Container-Instance angezeigt.

    Der Wert Registered Memory entspricht dem, was die Container-Instance bei Amazon ECS registriert hat, als sie zum ersten Mal gestartet wurde, und der Wert Available memory ist der Wert, der noch nicht Aufgaben zugewiesen wurde.