2015-12-02 40 views
5

Ho recentemente creato un'istanza (m4.4xlarge).AWS EC2: il numero di core CPU disponibili su un'istanza

quando eseguo il comando 'lscpu', l'output è simile al seguente:

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 
     . 
     . 
     . 

Questo significa che solo 8 core possono essere utilizzati?

Se sì, a cosa servono le altre CPU?

risposta

9

m4.4xlarge casi hanno 16 logiche CPU, così sembra che l'istanza EC2 sta riportando come avere un singolo socket, con 1 CPU fisica che ha 8 core. Ogni core può eseguire simultaneamente due thread (tecnologia Intel Hyperthreading) in modo che ogni core sia presentato come 2 CPU logiche.

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

così posso presumere che la mia istanza abbia 16 CPU logiche con un singolo core per ciascuna e in grado di gestire 16 processi contemporaneamente? –

+3

@ds È possibile presumere che contenga 16 CPU logiche e che sia possibile eseguire 16 thread in modalità semi-simultanea (l'hyperthreading non è l'isolamento completo del thread e ci sono risorse condivise), ma non è possibile formulare alcuna ipotesi sull'hardware sottostante, perché dipende da come Amazon configura i propri hypervisor per allocare le risorse vCPU agli ospiti. La stessa documentazione di Amazon afferma: "Ogni vCPU è un hyperthread di un core Intel Xeon per M4, M3, C4, C3, R3, HS1, G2, I2 e D2", che è piuttosto mano-ondulato. – birryree

+0

Grazie per la spiegazione dettagliata. Davvero utile! –