在 Linux 中查詢 CPU 的核數

JaguarJack發表於2019-08-16

以一臺Linux伺服器為例。這臺Linux包括兩顆Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz CPU, 單顆CPU包括 10 個 cpu core, 使用超執行緒包含20個邏輯cpu core, 具體的官方介紹: E5-2630 V4

下面讓我們通過Linux的命令來查詢對應的引數,看看是否符合官方的介紹, 主要是檢視/proc/cpuinfo的資訊獲得。

檢視 CPU 的型號

 cat /proc/cpuinfo | grep 'model name' | sort | uniq
輸出: model name  : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz

檢視 CPU 顆數

實際Server中插槽上的CPU個數, 物理cpu數量,可以數不重複的 physical id個數。

cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
輸出: 2

檢視 CPU 核數

一顆CPU上面能處理資料的晶片組的數量。

cat /proc/cpuinfo |grep "cores"|uniq|awk '{print $4}'
輸出: 10

邏輯 CPU 核數

一般情況,我們認為一顆 cpu 可以有多核,加上intel的超執行緒技術(HT), 可以在邏輯上把一個物理執行緒模擬出兩個執行緒來使用,使得單個核心用起來像兩個核一樣,以充分發揮 CPU 的效能,

邏輯CPU數量=物理cpu數量 x cpu cores 這個規格值x 2(如果支援並開啟超執行緒)。

top命令查詢出來的就是邏輯CPU的數量。

cat /proc/cpuinfo |grep "processor"|wc -l
輸出:40

相關文章