2015-12-02 49 views
5

我最近設置了一個實例(m4.4xlarge)。AWS EC2:實例上可用的CPU核心數

當我執行「lscpu」命令,輸出看起來像下面這樣:

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

這是否意味着,只有8個內核,可以利用?

如果是這樣,CPU的其餘部分是什麼?

回答

9

m4.4xlarge情況下,有16級邏輯的CPU,所以它看起來像你的EC2實例報告其爲具有單插座,使用具有8個內核1個物理CPU。每個內核可以同時執行兩個線程(英特爾超線程技術),因此每個內核都呈現爲2個邏輯CPU。

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

因此,我可以安全地假設我的實例有16個邏輯CPU,每個核心只有一個核心,並且可以同時處理16個進程? –

+3

@ds您可以假設它有16個邏輯CPU,並且可以半同時運行16個線程(超線程不是完全線程隔離並且存在共享資源),但是您不能對底層硬件做任何假設,因爲它取決於Amazon如何配置其虛擬機管理程序以將vCPU資源分配給guest虛擬機。亞馬遜自己的文檔指出:「每個vCPU都是英特爾至強核心的M4,M3,C4,C3,R3,HS1,G2,I2和D2的超線程。 – birryree

+0

感謝您的詳細解釋。真的有幫助! –