天天看點

實體CPU,CPU核數,邏輯CPU

CPU概念

實體CPU

在Info中由physical id識别

實體CPU指的是實際主機闆上插槽上的CPU個數。physical id 就是每個實體CPU的ID,不重複的 physical id 有幾個,實體cpu數量就是幾個。

CPU核數(實體核)

在Info中由 cpu cores 識别

CPU核數是指單塊CPU上面能處理資料的晶片組的數量,如雙核、四核等。通常每個CPU下的核數都是固定的,比如你的計算機有兩個實體CPU,每個CPU是雙核,那麼計算機就是四核的。

邏輯CPU(邏輯核)

在Info中由 processor 識别

邏輯CPU是指用Intel的超線程技術(HT)将實體核虛拟而成的邏輯處理單元。

在windows系統下面,我們看到有4個cpu記錄,其實這是雙核CPU使用HT技術虛拟出來的4個邏輯CPU。

實體CPU,CPU核數,邏輯CPU

任務管理器中也能檢視自己PC中基本的實體CPU CPU核數以及邏輯CPU 。

實體CPU,CPU核數,邏輯CPU

在linux系統下面的/proc/cpuinfo檔案的條目中siblings記錄了對應的實體CPU(以該條目中的physical id辨別)有多少個邏輯核:

實體CPU,CPU核數,邏輯CPU

總核數 = 實體CPU個數 X 每顆實體CPU的核數

總邏輯CPU數 = 實體CPU個數 X 每顆實體CPU的核數 X 超線程數

檢視cpu資訊概要

摘自 http://www.cnblogs.com/mafeng/p/6558941.html
#lscpu
Architecture:          i686                            #架構686
CPU(s):                  2                                #邏輯cpu顆數是2
Thread(s) per core:    1                           #每個核心線程數是1                 
Core(s) per socket:    2                           #每個cpu插槽核數/每顆實體cpu核數是2
CPU socket(s):         1                            #cpu插槽數是1
Vendor ID:             GenuineIntel           #cpu廠商ID是GenuineIntel
CPU family:            6                              #cpu系列是6
Model:                 23                                #型号23
Stepping:              10                              #步進是10
CPU MHz:               800.000                 #cpu主頻是800MHz
Virtualization:        VT-x                         #cpu支援的虛拟化技術VT-x
L1d cache:             32K                         #一級緩存32K(google了下,這具體表示表示cpu的L1資料緩存為32k)
L1i cache:             32K                          #一級緩存32K(具體為L1指令緩存為32K)
L2 cache:              3072K                      #二級緩存3072K
           

檢視cpu資訊指令

# 檢視實體CPU個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 檢視每個實體CPU中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 檢視邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l
           

CPU部分資訊解釋

vendor id     如果處理器為英特爾處理器,則字元串是 GenuineIntel。
processor     包括這一邏輯處理器的唯一辨別符。
physical id   包括每個實體封裝的唯一辨別符。
core id       儲存每個核心的唯一辨別符。
siblings      列出了位于相同實體封裝中的邏輯處理器的數量。
cpu cores     包含位于相同實體封裝中的核心數量。
           
  1. 擁有相同 physical id 的所有邏輯處理器共享同一個實體插座,每個 physical id 代表一個唯一的實體封裝。
  2. Siblings 表示位于這一實體封裝上的邏輯處理器的數量,它們可能支援也可能不支援超線程(HT)技術。
  3. 每個 core id 均代表一個唯一的處理器核心,所有帶有相同 core id 的邏輯處理器均位于同一個處理器核心上。

    簡單的說:“siblings”指的是一個實體CPU有幾個邏輯CPU,”cpu cores“指的是一個實體CPU有幾個核。

  4. 如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支援超線程(HT)技術。
  5. 如果有兩個或兩個以上的邏輯處理器擁有相同的 physical id,但是 core id不同,則說明這是一個多核心處理器。cpu cores條目也可以表示是否支援多核心。
  6. “所有帶有相同 core id 的邏輯處理器均位于同一個處理器核心上” 這樣的描述感覺是有問題的。我測試了一下,ubuntu的雙CPU的系統,每個CPU可以分别命名CPU核0、CPU核1…然後就有四個core id均為0的編号,但是他們分别屬于不同的處理器核心。
實體CPU,CPU核數,邏輯CPU
實體CPU,CPU核數,邏輯CPU

參考

https://blog.csdn.net/kobejayandy/article/details/24875881

https://www.jianshu.com/p/6903604cd1d4

https://blog.csdn.net/u012062455/article/details/78358113

https://blog.csdn.net/kobejayandy/article/details/24875881#commentBox