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.
Überlegungen zu Arbeitsspeicher und vCPU für AWS Batch in Amazon EKS
In AWS Batch auf Amazon EKS können Sie die Ressourcen angeben, die einem Container zur Verfügung gestellt werden. Sie können beispielsweise - requests
oder -limits
Werte für vCPU und Arbeitsspeicherressourcen angeben.
Die folgenden Einschränkungen gelten für die Angabe von vCPU-Ressourcen:
-
Es muss mindestens eine vCPU
requests
oder einlimits
Wert angegeben werden. -
Eine vCPU-Einheit entspricht einem physischen oder virtuellen Kern.
-
Der vCPU-Wert muss in ganzen Zahlen oder in Schritten von 0,25 eingegeben werden.
-
Der kleinste gültige vCPU-Wert ist 0,25.
-
Wenn beide angegeben sind, muss der
requests
Wert kleiner oder gleich demlimits
Wert sein. Auf diese Weise können Sie sowohl weiche als auch harte vCPU-Konfigurationen konfigurieren. -
vCPU-Werte können nicht im milliCPU angegeben werden. Beispielsweise
100m
ist kein gültiger Wert. -
AWS Batch verwendet den
requests
Wert für Skalierungsentscheidungen. Wenn keinrequests
Wert angegeben wird, wird derlimits
Wert in denrequests
Wert kopiert.
Im Folgenden sind Einschränkungen für die Angabe von Speicherressourcen aufgeführt:
-
Es muss mindestens ein Speicher
requests
oderlimits
Wert angegeben werden. -
Speicherwerte müssen sich in mebibytes (MiBs) befinden.
-
Wenn beide angegeben sind, muss der
requests
Wert gleich demlimits
Wert sein. -
AWS Batch verwendet den
requests
Wert für Skalierungsentscheidungen. Wenn keinrequests
Wert angegeben ist, wird derlimits
Wert in denrequests
Wert kopiert.
Im Folgenden sind Einschränkungen für die Angabe von GPU-Ressourcen aufgeführt:
-
Wenn beide angegeben sind, muss der
requests
Wert gleich demlimits
Wert sein. -
AWS Batch verwendet den
requests
Wert für Skalierungsentscheidungen. Wenn keinrequests
Wert angegeben wird, wird derlimits
Wert in denrequests
Wert kopiert.
Beispiel für Auftragsdefinitionen
Im Folgenden AWS Batch in der Amazon-EKS-Auftragsdefinition werden weiche vCPU-Freigaben konfiguriert. Auf diese Weise kann AWS Batch auf Amazon EKS die gesamte vCPU-Kapazität für den Instance-Typ nutzen. Wenn jedoch andere Aufträge ausgeführt werden, wird dem Auftrag ein Maximum von 2
vCPUs zugewiesen. Der Arbeitsspeicher ist auf 2 GB begrenzt.
{ "jobDefinitionName": "MyJobOnEks_Sleep", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["sleep", "60"], "resources": { "requests": { "cpu": "2", "memory": "2048Mi" } } } ] } } }
Die folgende AWS Batch in der Amazon-EKS-Auftragsdefinition hat den request
Wert 1
und weist dem Auftrag maximal 4
vCPUs zu.
{ "jobDefinitionName": "MyJobOnEks_Sleep", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["sleep", "60"], "resources": { "requests": { "cpu": "1" }, "limits": { "cpu": "4", "memory": "2048Mi" } } } ] } } }
Im Folgenden wird AWS Batch in der Amazon-EKS-Auftragsdefinition ein vCPU-limits
Wert von 1
und ein limits
Speicherwert von 1 GB festgelegt.
{ "jobDefinitionName": "MyJobOnEks_Sleep", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["sleep", "60"], "resources": { "limits": { "cpu": "1", "memory": "1024Mi" } } } ] } } }
Wenn einen AWS Batch in Amazon-EKS-Auftrag in einen Amazon-EKS-Pod AWS Batch übersetzt, AWS Batch kopiert denlimits
Wert in den requests
Wert . Dies ist der Fall, wenn kein requests
Wert angegeben ist. Wenn Sie die vorherige Beispielauftragsdefinition einreichen, spec
lautet der Pod wie folgt.
apiVersion: v1 kind: Pod ... spec: ... containers: - command: - sleep - 60 image: public.ecr.aws/amazonlinux/amazonlinux:2 resources: limits: cpu: 1 memory: 1024Mi requests: cpu: 1 memory: 1024Mi ...
Knoten-CPU- und Speicherreservierungen
AWS Batch stützt sich auf die Standardlogik der bootstrap.sh
Datei für vCPU- und Speicherreservierungen. Weitere Informationen zur -bootstrap.sh
Datei finden Sie unter bootstrap.sh
Anmerkung
Wenn keine Instances ausgeführt werden, können sich vCPU- und Speicherreservierungen zunächst auf die AWS Batch Skalierungslogik und die Entscheidungsfindung auswirken. Nachdem die Instances ausgeführt wurden, AWS Batch passt die anfänglichen Zuweisungen an.
Beispiel für eine Knoten-CPU-Reservierung
Der CPU-Reservierungswert wird in Millisekunden berechnet, wobei die Gesamtzahl der vCPUs verwendet wird, die für die Instance verfügbar sind.
vCPU-Nummer | Reservierter Prozentsatz |
---|---|
1 | 6 % |
2 | 1 % |
3-4 | 0.5% |
4 und höher | 0,25 % |
Bei Verwendung der vorhergehenden Werte gilt Folgendes:
-
Der CPU-Reservierungswert für eine
c5.large
Instance mit 2 vCPUs beträgt 70 m. Dies wird wie folgt berechnet: (1*60) + (1*10) = 70 m . -
Der CPU-Reservierungswert für eine
c5.24xlarge
Instance mit 96 vCPUs beträgt 310 m. Dies wird wie folgt berechnet: (1*60) + (1*10) + (2*5) + (92*2.5) = 310 m.
In diesem Beispiel sind 1930 (berechnete 2000–70) Millicore vCPU-Einheiten verfügbar, um Aufträge auf einer c5.large
Instance auszuführen. Angenommen, Ihr Auftrag erfordert 2
(2*1000 m) vCPU-Einheiten, der Auftrag passt nicht auf eine einzelne c5.large
Instance. Ein Auftrag, für den 1.75
vCPU-Einheiten angepasst werden müssen.
Beispiel für eine Knotenspeicherreservierung
Der Speicherreservierungswert wird wie folgt in Mebibyte berechnet:
-
Die Instance-Kapazität in Mebibyte. Eine 8-GB-Instance beträgt beispielsweise 7.748 MiB.
-
Der
kubeReserved
Wert. DerkubeReserved
Wert ist die Speichermenge, die für System-Daemons reserviert werden soll. DerkubeReserved
Wert wird wie folgt berechnet: ((11 * maximale Anzahl von Pods, die vom Instance-Typ unterstützt werden) + 255). Informationen zur maximalen Anzahl von Pods, die von einem Instance-Typ unterstützt werden, finden Sie unter eni-max-pods.txt -
Der
HardEvictionLimit
Wert. Wenn der verfügbare Speicher unter den -HardEvictionLimit
Wert fällt, versucht die Instance, Pods zu bereinigen.
Die Formel zur Berechnung des zuweisbaren Speichers lautet wie folgt: (instance_capacity_in_MiB
) - (11 * (Maximum_number_of_pods
) - 255 - (-
)).HardEvictionLimit
Wert.
Eine Instance c5.large
unterstützt bis zu 29 Pods. Bei einer 8-GBc5.large
-Instance mit einem HardEvictionLimit
Wert von 100 MiB beträgt der zuweisbare Speicher 7074 MiB. Dies wird wie folgt berechnet: (7748 - (11 * 29) -255 -100) = 7074 MiB . In diesem Beispiel passt ein 8.192-MiBAuftrag nicht zu dieser Instance, obwohl es sich um eine 8 gibibyte (GiB)-Instance handelt.
DaemonSets
Beachten Sie DaemonSetsbei der Verwendung von Folgendes:
-
Wenn kein AWS Batch auf Amazon-EKS-Instances ausgeführt wird, DaemonSets kann sich zunächst auf die AWS Batch Skalierungslogik und die Entscheidungsfindung auswirken. weist AWS Batch zunächst 0,5 vCPU-Einheiten und 500 MiB für erwartete zuDaemonSets. Nachdem die Instances ausgeführt wurden, AWS Batch passt die anfänglichen Zuweisungen an.
-
Wenn ein vCPU- oder Speicherlimits DaemonSet definiert, verfügen AWS Batch Amazon-EKS-Aufträge über weniger Ressourcen. Wir empfehlen Ihnen, die Anzahl der DaemonSets, die AWS Batch Aufträgen zugewiesen sind, so gering wie möglich zu halten.