Speicherverwaltung von Container-Instances - 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.

Speicherverwaltung von Container-Instances

Wenn der Amazon-ECS-Container-Agent eine Container-Instance in einem Cluster registriert, muss der Agent bestimmen, wie viel Speicher die Container-Instance zur Reservierung 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 8 192 MiB Arbeitsspeicher für Aufgaben verfügbar sind, 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 auf einer Container-Instance mit Ihren Aufgaben belegen, besteht die Möglichkeit, dass Ihre Aufgaben mit kritischen Systemprozessen um den Speicher konkurrieren und möglicherweise einen Systemausfall starten.

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 Container-Instances mit Amazon EC2-Benutzerdaten.

Wenn Sie 8 192 MiB für die Aufgabe angeben und keine Ihrer Conatiner-Instances über 8 192 MiB oder mehr Speicher verfügt, um diese Anforderung zu erfüllen, kann die Aufgabe nicht in Ihrem Cluster platziert werden. Wenn Sie eine verwaltete Datenverarbeitungsumgebung verwenden, AWS Batch muss einen größeren Instance-Typ starten, um die Anforderung zu erfüllen.

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 Befehlszeilen-Dienstprogramme bereit, um den Gesamtspeicher zu bestimmen.

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.

Anzeigen des Speichers der Container-Instance

Sie können in der Amazon-ECS-Konsole (oder mit der API-Operation ) anzeigen, wie viel Speicher eine ContainerDescribeContainerInstances-Instance bei registriert. Wenn Sie versuchen, Ihre Ressourcenauslastung zu maximieren, indem Sie Ihren Aufgaben so viel Speicher wie möglich für einen bestimmten Instance-Typ bereitstellen, können Sie den für diese Container-Instance verfügbaren Speicher beobachten und dann Ihren Aufgaben diesen Speicher zuweisen.

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

  2. Wählen Sie im Navigationsbereich Cluster 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 Registrierter Speicher ist das, was die Container-Instance hat; bei Amazon ECS registriert, als sie zum ersten Mal gestartet wurde, und der Wert Verfügbarer Speicher ist das, was Aufgaben noch nicht zugewiesen wurde.