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.
CPUÜberlegungen zu Speicher und V AWS Batch bei Amazon EKS
In AWS Batch Amazon EKS können Sie die Ressourcen angeben, die einem Container zur Verfügung gestellt werden. Sie können beispielsweise limits
Werte für V CPU und Speicherressourcen angebenrequests
.
Die folgenden Einschränkungen gelten für die Angabe von CPU V-Ressourcen:
-
Es muss mindestens ein v CPU
requests
oder einlimits
Wert angegeben werden. -
Eine CPU V-Einheit entspricht einem physischen oder virtuellen Kern.
-
Der CPU V-Wert muss in ganzen Zahlen oder in Schritten von 0,25 eingegeben werden.
-
Der kleinste gültige CPU v-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 Soft- als auch CPU Hard-V-Konfigurationen konfigurieren. -
CPUV-Werte können nicht in CPU Milliform angegeben werden.
100m
Ist beispielsweise kein gültiger Wert. -
AWS Batch verwendet den
requests
Wert für Skalierungsentscheidungen. Wenn keinrequests
Wert angegeben ist, wird derlimits
Wert in denrequests
Wert kopiert.
Die folgenden Einschränkungen gelten für die Angabe von Speicherressourcen:
-
Es muss mindestens ein Speicher
requests
oderlimits
Wert angegeben werden. -
Speicherwerte müssen sich in befinden mebibytes (MiBs).
-
Wenn beide angegeben sind, muss der
requests
Wert demlimits
Wert entsprechen. -
AWS Batch verwendet den
requests
Wert für Skalierungsentscheidungen. Wenn keinrequests
Wert angegeben ist, wird derlimits
Wert in denrequests
Wert kopiert.
Die folgenden Einschränkungen gelten für die Angabe von GPU Ressourcen:
-
Wenn beide angegeben sind, muss der
requests
Wert demlimits
Wert entsprechen. -
AWS Batch verwendet den
requests
Wert für Skalierungsentscheidungen. Wenn keinrequests
Wert angegeben ist, wird derlimits
Wert in denrequests
Wert kopiert.
Beispiel: Jobdefinitionen
Die folgende EKS Jobdefinition AWS Batch auf Amazon konfiguriert CPU Soft-V-Shares. Dadurch kann AWS Batch Amazon die gesamte CPU v-Kapazität für den Instance-Typ EKS verwenden. Wenn jedoch andere Jobs ausgeführt werden, wird dem Job ein Maximum von zugewiesen 2
vCPUs. 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 EKS Jobdefinition AWS Batch auf Amazon hat einen request
Wert von 1
und weist dem Job ein Maximum von 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" } } } ] } } }
Die folgende EKS Jobdefinition AWS Batch auf Amazon legt einen CPU limits
V-Wert von 1
und einen limits
Speicherwert von 1 GB fest.
{ "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 ein EKS Job bei Amazon in einen AWS Batch EKS Amazon-Pod AWS Batch übersetzt wird, wird der limits
Wert in den requests
Wert AWS Batch kopiert. Dies ist der Fall, wenn kein requests
Wert angegeben ist. Wenn Sie die obige Beispiel-Jobdefinition einreichen, sieht der Pod wie spec
folgt aus.
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 V CPU - und Speicherreservierungen. Weitere Informationen zur bootstrap.sh
Datei finden Sie unter bootstrap.sh
Anmerkung
Wenn keine Instances ausgeführt werden, können sich V CPU - und Speicherreservierungen zunächst auf die AWS Batch Skalierungslogik und die Entscheidungsfindung auswirken. AWS Batch Passt die anfänglichen Zuweisungen an, nachdem die Instances ausgeführt wurden.
Beispiel: Knotenreservierung CPU
Der CPU Reservierungswert wird in Millikernen berechnet, wobei die Gesamtzahl der Kerne verwendet wird vCPUs , die der Instanz zur Verfügung stehen.
V-Nummer CPU | Prozentsatz reserviert |
---|---|
1 | 6% |
2 | 1% |
3-4 | 0.5% |
4 und höher | 0,25% |
Unter Verwendung der vorherigen Werte ist Folgendes wahr:
-
Der CPU Reservierungswert für eine
c5.large
Instanz mit 2 vCPUs ist 70 m. Dies wird auf folgende Weise berechnet: (1*60) + (1*10) = 70 m. -
Der CPU Reservierungswert für eine
c5.24xlarge
Instanz mit 96 vCPUs ist 310 m. Dies wird wie folgt berechnet: (1*60) + (1*10) + (2*5) + (92*2,5) = 310 m.
In diesem Beispiel stehen 1930 (berechnete 2000-70) Millicore-V-Einheiten zur Verfügung, um Jobs auf einer Instanz auszuführen. CPU c5.large
Angenommen, Ihr Job erfordert 2
(2*1000 m) CPU V-Einheiten, der Job passt nicht auf eine einzelne Instanz. c5.large
Ein Job, der 1.75
v CPU Einheiten benötigt, passt jedoch.
Beispiel: Speicherreservierung für Knoten
Der Wert für die Speicherreservierung wird wie folgt in Mebibyte berechnet:
-
Die Instanzkapazität in Mebibyte. Eine 8-GB-Instance ist beispielsweise 7.748 MiB.
-
Der
kubeReserved
Wert. DerkubeReserved
Wert ist die Speichermenge, die für System-Daemons reserviert werden soll. DerkubeReserved
Wert wird auf folgende Weise berechnet: ((11 * maximale Anzahl von Pods, die vom Instance-Typ unterstützt wird) + 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 denHardEvictionLimit
Wert fällt, versucht die Instance, Pods zu entfernen.
Die Formel zur Berechnung des zuweisbaren Speichers lautet wie folgt: (instance_capacity_in_MiB
) - (11 * (maximum_number_of_pods
) - 25 - (
)).HardEvictionLimit
value.
Eine c5.large
Instanz unterstützt bis zu 29 Pods. Für eine c5.large
8-GB-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 sind es 8.192 MiB Job passt nicht auf diese Instanz, obwohl es eine 8 ist gibibyte
(GiB) Instanz.
DaemonSets
Wenn du verwendest DaemonSets, beachten Sie Folgendes:
-
Wenn keine EKS Instances AWS Batch auf Amazon laufen, DaemonSets kann sich zunächst auf die AWS Batch Skalierungslogik und die Entscheidungsfindung auswirken. AWS Batch weist zunächst 0,5 CPU V-Einheiten und 500 MiB für erwartete Werte zu DaemonSets. AWS Batch Passt die anfänglichen Zuweisungen an, nachdem die Instances ausgeführt wurden.
-
Wenn ein DaemonSet definiert v CPU oder Speicherlimits, AWS Batch bei Amazon haben EKS Jobs weniger Ressourcen. Wir empfehlen Ihnen, die Anzahl der beizubehalten DaemonSets die AWS Batch Jobs so gering wie möglich zugewiesen sind.