2015-12-02 11 views
5

Ich habe kürzlich eine Instanz (m4.4xlarge) eingerichtet.AWS EC2: Die Anzahl der CPU-Kerne, die für eine Instanz verfügbar sind

wenn ich Befehl ‚lscpu‘ ausführen, sieht die Ausgabe etwa wie folgt:

CPU op-mode(s):  32-bit, 64-bit 
Byte Order:   Little Endian 
CPU(s):    16 
On-line CPU(s) list: 0-15 
Thread(s) per core: 2 
Core(s) per socket: 8 
CPU socket(s):   1 
     . 
     . 
     . 

Bedeutet dies, dass nur 8 Kerne genutzt werden können?

Wenn ja, für was sind die restlichen CPUs?

Antwort

9

m4.4xlarge Instanzen haben 16 logische CPUs. Es sieht also so aus, als ob Ihre EC2-Instanz einen einzigen Socket mit einer physischen CPU mit 8 Kernen meldet. Jeder Kern kann zwei Threads gleichzeitig ausführen (Intel Hyperthreading-Technologie), so dass jeder Kern als 2 logische CPUs dargestellt wird.

CPU(s):    16 <- logical CPUs (Threads per core * Cores per socket) 
On-line CPU(s) list: 0-15 
Thread(s) per core: 2 <- Each core has hyperthreading and presents 
          itself as two logical CPUs 
Core(s) per socket: 8 <- Instance sees it has 8-core physical CPU per socket 
CPU socket(s):   1 <- Instance sees it has 1 physical CPU 
+0

kann ich also sicher davon ausgehen, dass meine Instanz 16 logische CPUs mit jeweils einem Kern hat und 16 Prozesse gleichzeitig verarbeiten kann? –

+3

@ds Sie können davon ausgehen, dass es 16 logische CPUs hat und dass Sie 16 Threads halb-simultan ausführen können (Hyperthreading ist keine vollständige Thread-Isolation und es gibt geteilte Ressourcen), aber Sie können keine Annahmen über die zugrunde liegende Hardware machen. weil es darauf ankommt, wie Amazon ihre Hypervisor konfiguriert, um den Gästen vCPU-Ressourcen zuzuweisen. In der Dokumentation von Amazon heißt es: "Jede vCPU ist ein Hyperthread eines Intel Xeon-Kerns für M4, M3, C4, C3, R3, HS1, G2, I2 und D2." Das ist ziemlich hand-wavey. – birryree

+0

Danke für die detaillierte Erklärung. Wirklich hilfreich! –