轉自: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線程數是指可以同時運行的最小調度單位,跟編程語言的多線程沒什么直接關系。