Container-InstanceSpeicherverwaltung - Amazon Elastic Container Service

Container-InstanceSpeicherverwaltung

Wenn der Amazon-ECS-Container-Agent eine Container-Instance- in einer Cluster- anmeldet, muss der Agent bestimmen, wie viel Speicher die Container-Instance- zur Verfügung hat, um für Ihre Aufgaben- zu reservieren. 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 Arbeitsspeicher für Aufgaben- zur Verfügung stehen, wenn die Container-Instance die anmeldet.

Wenn Sie 8192 MiB für den Aufgaben- angeben und keine Ihrer Container-Instance- 8192 MiB oder mehr Speicher zur Verfügung haben, um diese Anforderung zu erfüllen, kann der Aufgaben- nicht in Ihrer Cluster- .

Sie sollten außerdem Arbeitsspeicher für den Amazon ECS-Container-Agenten und andere wichtige Systemprozesse in Ihren Container-Instances reservieren, sodass die Container Ihrer Aufgaben nicht um denselben Arbeitsspeicher konkurrieren und möglicherweise einen Systemausfall auslösen. Weitere Informationen finden Sie unter Reservieren von Systemspeicher.

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 bieten Befehlszeilen-Dienstprogramme, 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, die das Amazon ECS-optimierte Windows-AMI ausführt.

TotalPhysicalMemory 8589524992

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

Reservieren von Systemspeicher

Wenn Sie Ihren gesamten Arbeitsspeicher auf einer Container-Instance- mit Ihren Aufgaben- belegen, kann es sein, dass Ihre Aufgaben- mit wichtigen Systemprozessen um Arbeitsspeicher konkurrieren und möglicherweise einen Systemausfall auslösen. Der Amazon ECS-Container-Agent besitzt eine Konfigurationsvariable namens ECS_RESERVED_MEMORY, mit der Sie eine bestimmte MiB-Menge Arbeitsspeicher aus dem Pool entfernen können, der ihren Aufgaben- zugeordnet wird. Damit wird dieser Arbeitsspeicher für wichtige Systemprozesse reserviert.

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.

Anzeigen von Container-Instance-Memory (Arbeitsspeicher)

Sie können anzeigen, wie viel Speicher eine Container-Instance- mit der Amazon ECS-Konsole (oder mit der API OperationDescribeContainerInstances) registriert. Wenn Sie versuchen, Ihre Ressourcennutzung 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 Arbeitsspeicher beobachten und dann Ihren Aufgaben- soviel Arbeitsspeicher zuordnen.

Anzeigen von Container-Instance--Speicher

  1. Öffnen Sie die Amazon ECS-Konsole unter https://console.aws.amazon.com/ecs/.

  2. Wählen Sie den Cluster aus, der Ihre Container-Instance-n zu sehen.

  3. Wählen Sie ECS-Instances und wählen Sie eine anzuzeigende Container-Instance- aus der Spalte Container-Instance aus.

  4. Der Abschnitt Resources (Ressourcen) zeigt den registrierten und verfügbaren Arbeitsspeicher für die Container-Instance- an.

    Der Arbeitsspeicherwert Registered (Angemeldet) gibt an, was die Container-Instance- beim ersten Launchen bei Amazon ECS angemeldet hat, und der Arbeitsspeicherwert Available (Verfügbar) gibt an, was noch nicht für die Aufgaben- zugeordnet wurde.