1. 程式人生 > >Linux上如何檢視物理CPU個數,核數,執行緒數

Linux上如何檢視物理CPU個數,核數,執行緒數

轉載自:http://www.cnblogs.com/ivictor/p/6208573.html

首先,看看什麼是超執行緒概念

超執行緒技術就是利用特殊的硬體指令,把兩個邏輯核心模擬成兩個物理晶片,讓單個處理器都能使用執行緒級平行計算,進而相容多執行緒作業系統和軟體,減少了CPU的閒置時間,提高的CPU的執行效率。
超執行緒技術是在一顆CPU同時執行多個程式而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個執行緒,雖然採用超執行緒技術能同時執行兩個執行緒,但它並不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個執行緒都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超執行緒的效能並不等於兩顆CPU的效能。

其次,看看物理CPU個數,核數以及執行緒數的關係

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

上述公式中,邏輯CPU數即執行緒數

如何檢視CPU物理個數

# grep 'physical id' /proc/cpuinfo | sort -u

physical id    : 0
physical id    : 1

如何檢視每個物理CPU的核數

# grep 'core id' /proc/cpuinfo | sort -u | wc -l

8

如何檢視總的邏輯CPU個數

# grep 'processor' /proc/cpuinfo | sort -u | wc -l

32

32/8/2=2,可見該CPU支援並已開啟超執行緒。

如何檢視CPU的型號

# dmidecode -s processor-version

Intel(R) Xeon(R) CPU E5-2658 @ 2.10GHz
Intel(R) Xeon(R) CPU E5-2658 @ 2.10GHz