這里有幾個概念:
1、一台物理機的物理CPU的個數 socket
2、一個CPU上的核數 core
3、一個核上面支持的線程數 processor
有下面的計算公式:
# 總核數 = 物理CPU個數 X 每顆物理CPU的核數
# 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數
# 查看CPU信息(型號)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
# 查看物理CPU個數(socket)
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
2
# 查看每個物理CPU中core的個數(core)
cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 6
# 查看邏輯CPU的個數 (processor)
cat /proc/cpuinfo| grep "processor"| wc -l
24
從上面執行的結果來看,socket:2個,每個socket有6個core,打開了超線程,每個core有2個processor
CPU架構
多個物理CPU,各個CPU通過總線進行通信,效率比較低,如下
多核CPU,不同的核通過L2 cache進行通信,存儲和外設通過總線與CPU通信,如下:
多核超線程,每個核有兩個邏輯的處理單元,兩個線程共同分享一個核的資源,如下: