1. 程式人生 > 實用技巧 >(轉)ubuntu下查詢CPU數,核心數,執行緒數

(轉)ubuntu下查詢CPU數,核心數,執行緒數

轉自:https://blog.csdn.net/u013095333/article/details/103913691/

ubuntu下查詢CPU數,核心數,執行緒數

我們在選購電腦的時候,CPU是一個需要考慮到核心因素,因為它決定了電腦的效能等級。CPU從早期的單核,發展到現在的雙核,多核。CPU除了核心數之外,還有執行緒數之說,下面筆者就來解釋一下CPU的核心數與執行緒數的關係和區別。

簡單地說,CPU的核心數是指物理上,也就是硬體上存在著幾個核心。比如,雙核就是包括2個相對獨立的CPU核心單元組,四核就包含4個相對獨立的CPU核心單元組,等等,依次類推。

執行緒數是一種邏輯的概念,簡單地說,就是模擬出的CPU核心數。比如,可以通過一個CPU核心數模擬出2執行緒的CPU,也就是說,這個單核心的CPU被模擬成了一個類似雙核心CPU的功能。我們從工作管理員的效能標籤頁中看到的是兩個CPU。 比如Intel 賽揚G460是單核心,雙執行緒的CPU,Intel 酷睿i3 3220是雙核心 四執行緒,Intel 酷睿i7 4770K是四核心 八執行緒 ,Intel 酷睿i5 4570是四核心 四執行緒等等。

對於一個CPU,執行緒數總是大於或等於核心數的。一個核心最少對應一個執行緒,但通過超執行緒技術,一個核心可以對應兩個執行緒,也就是說它可以同時執行兩個執行緒。 CPU的執行緒數概念僅僅只針對Intel的CPU才有用,因為它是通過Intel超執行緒技術來實現的,最早應用在Pentium4上。如果沒有超執行緒技術,一個CPU核心對應一個執行緒。所以,對於AMD的CPU來說,只有核心數的概念,沒有執行緒數的概念。

CPU之所以要增加執行緒數,是源於多工處理的需要。執行緒數越多,越有利於同時執行多個程式,因為執行緒數等同於在某個瞬間CPU能同時並行處理的任務數。

# 總核數 = 物理CPU個數 X 每顆物理CPU的核數 
# 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超執行緒數

# 檢視物理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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

概念

物理cpu:實際server中插槽上的cpu的個數,物理cpu的數量,可以數不重複的physical id 有幾個

查詢物理CPU個數:

grep 'physical id' /proc/cpuinfo | sort -u
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
  • 1
  • 2

檢視每個物理CPU中core的個數(核數):

cat /proc/cpuinfo| grep "cpu cores"| uniq
grep 'core id' /proc/cpuinfo | sort -u | wc -l
  • 1
  • 2


檢視邏輯CPU的個數:

# 檢視邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l 
# 注意,此處檢視的執行緒數是總得執行緒數,可以理解為邏輯cpu的數量
grep 'processor' /proc/cpuinfo | sort -u | wc -l 
  • 1
  • 2
  • 3
  • 4

CPU執行緒數與多執行緒

cpu執行緒數是指可以同時執行的最小排程單位,跟程式語言的多執行緒沒什麼直接關係。