1. 程式人生 > >在Linux作業系統中通過/proc/cpuinfo檔案查詢CPU詳細資訊

在Linux作業系統中通過/proc/cpuinfo檔案查詢CPU詳細資訊

在前面的文章中介紹過,Linux系統的/proc目錄主要是包含系統程序和硬體資訊的動態檔案(例如:記憶體、CPU、網路配置等動態資訊),其中/proc/cpuinfo就是載入記錄了當前伺服器的CPU資訊。

在Linux作業系統中,通過cat /proc/cpuinfo可以檢視到——比如:幾個物理CPU/幾核/幾線程這些資訊。

判斷依據:
1.具有相同core id的cpu是同一個core的超執行緒。
2.具有相同physical id的cpu是同一顆cpu封裝的執行緒或者cores。

詳細的查詢方法如下:

1. 檢視邏輯CPU個數:
# cat /proc/cpuinfo | grep “processor” | wc -l

2. 檢視物理CPU個數:
# cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l

3. 檢視每個物理CPU中Core的個數,有兩種方法:
# cat /proc/cpuinfo | grep “cpu cores” | uniq | awk -F: ‘{print $2}’
# cat /proc/cpuinfo | grep “core id”

4. CPU是否為超執行緒?
如果有兩個邏輯CPU具有相同的”core id”,那麼超執行緒是開啟的。
#每個物理CPU中邏輯CPU(可能是core, threads或both)的個數:
cat /proc/cpuinfo | grep “siblings”

5. 如何檢視/proc/cpuinfo 檔案包含系統上每個處理器的資料段落?
/proc/cpuinfo檔案中有6個條目適用於多核心和超執行緒(HT)技術檢查:processor, vendor id, physical id, siblings, core id 和 cpu cores。
processor – 包括這一邏輯處理器的唯一識別符號。
physical id – 包括每個物理封裝的唯一識別符號。
core id – 儲存每個核心的唯一識別符號。
siblings – 列出了位於相同物理封裝中的邏輯處理器的數量。
cpu cores – 包含位於相同物理封裝中的核心數量。
vendor id – 記錄CPU廠商的ID資訊,如果處理器為英特爾處理器,則vendor id條目中的字串是 GenuineIntel。

對於這些條目資訊,做以下補充說明:

1. 擁有相同 physical id 的所有邏輯處理器共享同一個物理插座。每個 physical id 代表一個唯一的物理封裝。
2. Siblings 表示位於這一物理封裝上的邏輯處理器的數量。它們可能支援也可能不支援超執行緒(HT)技術。
3. 每個 core id 均代表一個唯一的處理器核心。所有帶有相同 core id 的邏輯處理器均位於同一個處理器核心上。
4. 如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支援超執行緒(HT)技術。
5. 如果有兩個或兩個以上的邏輯處理器擁有相同的 physical id,但是 core id 不同,則說明這是一個多核心處理器。cpu cores 條目也可以表示是否支援多核心。

6. 如何判斷CPU是否64位?
檢查cpuinfo中的flags區段,看是否有lm標識,例如:lahf_lm。