ubuntu下查詢CPU數,核心數,線程數

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

概念

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

查詢物理CPU個數:

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

在這裏插入圖片描述

查看每個物理CPU中core的個數(核數):

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

在這裏插入圖片描述
查看邏輯CPU的個數:

# 查看邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l 
# 注意,此處查看的線程數是總得線程數,可以理解爲邏輯cpu的數量
grep 'processor' /proc/cpuinfo | sort -u | wc -l 

在這裏插入圖片描述

CPU線程數與多線程

cpu線程數是指可以同時運行的最小調度單位,跟編程語言的多線程沒什麼直接關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章