標籤:邏輯cpu數 code 數值 href uniq 去掉 一個 cores img
轉自:http://wulc.me/2016/01/06/物理CPU、CPU核心數、邏輯CPU、超執行緒/
基本概念
物理CPU:
物理CPU就是插在主機上的真實的CPU硬體,在Linux下可以數不同的physical id 來確認主機的物理CPU個數。
核心數:
物理CPU下一層概念就是核心數,我們常常會聽說多核處理器,其中的核指的就是核心數。在Linux下可以通過cores來確認主機的物理CPU的核心數。
邏輯CPU:
核心數下一層的概念是邏輯CPU,邏輯CPU跟超執行緒技術有聯絡,假如物理CPU不支援超執行緒的,那麼邏輯CPU的數量等於核心數的數量;
如果物理CPU支援超執行緒,那麼邏輯CPU的數目是核心數數目的兩倍。在Linux下可以通過 processors 的數目來確認邏輯CPU的數量。
超執行緒:
超執行緒是英特爾開發出來的一項技術,使得單個處理器可以象兩個邏輯處理器那樣運行,這樣單個處理器以並存執行線程。
這裡的單個處理器也可以理解為CPU的一個核心;這樣便可以理解為什麼開啟了超執行緒技術後,邏輯CPU的數目是核心數的兩倍了。
在Linxu下查看物理cpu、核心數、邏輯CPU和是否支援超執行緒
關於CPU的一些資訊可在 /proc/cpuinfo 這個檔案中查看
cat /proc/cpuinfo
可以看到裡面的內容是以 processor (也就是邏輯CPU)為基本單元進行劃分的,
processor 下的 core id表示這個邏輯CPU屬於哪個核心,
而physical id則表示這個核心或者說邏輯CPU屬於哪個物理CPU。
瞭解這些資訊,便可以方便地查看上面說到的那些參數。
查看物理CPU數量
物理CPU就是不同的phycical id的個數,可通過下面命令實現:
cat /proc/cpuinfo | grep 'physical id' | uniq |wc -l
uniq是為了去掉多個邏輯CPU屬於同一個物理CPU的重複記錄。
查看核心數
核心數就是不同core id的個數,可通過下面的命令實現
cat /proc/cpuinfo | grep 'core id' | uniq |wc -l
查看邏輯CPU數目
邏輯CPU就是processor的數目
cat /proc/cpuinfo | grep 'processor' | wc -l
查看邏輯CPU時不需要去重
查看是否支援超執行緒
如果支援超執行緒就是說同一個core下會有兩個processors,這樣可以簡單地觀察/proc/cpuinfo中的內容,
如果兩個的processor下的core id相同,那麼說明支援超執行緒。
還有另外一種方法是查看siblings和cpu cores的數值是否一致,評判方法如下
如果”siblings”和”cpu cores”一致,則說明不支援超執行緒,或者超執行緒未開啟。
如果”siblings”是”cpu cores”的兩倍,則說明支援超執行緒,並且超執行緒已開啟。
另外,top命令中看到的CPU數目是邏輯CPU(輸入top後再按1)。
[轉]物理CPU、CPU核心數、邏輯CPU、超執行緒