Preface:
在 Linux 系統中,如何詳細了解 CPU 的信息呢?當然是通過 cat /proc/cpuinfo 來檢查了,但是比如幾個物理CPU/幾核/幾線程,這些問題怎麼確定呢?
過查看,我的開發機器是1個物理CPU,4核8線程,Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz 記錄一下,判斷的過程和知識:
判斷依據:
Example:
下面的一些命令,詳細演示了在Linux中如何查看CPU、cores、hyper-threading 等:
- echo "logical CPU number:"
- #邏輯CPU個數
- cat /proc/cpuinfo | grep "processor" | wc -l
- echo "physical CPU number:"
- #物理CPU個數:
- cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
- echo "core number in a physical CPU:"
- #每個物理CPU中Core的個數:
- cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F: '{print $2}'
- #查看每個physical cpu上core id的數量,即為每個物理CPU上的core的個數
- cat /proc/cpuinfo | grep "core id"
- #是否為超線程?
- #如果有兩個邏輯CPU core具有相同的”core id”,那麼超線程是打開的。
- #當然也可知直接查詢/proc/cpuinfo中的"ht"這個flag
- cat /proc/cpuinfo | grep flags | grep ht
- #每個物理CPU中邏輯CPU(可能是core, threads或both)的個數:
- cat /proc/cpuinfo | grep "siblings"
如果處理器為英特爾處理器,則 vendor id 條目中的字符串是 GenuineIntel。
判斷CPU是否64位,檢查cpuinfo中的flags區段,看是否有 lm 標識。
範例:
參考資料:http://hi.baidu.com/coolhayy/blog/item/420474019c625509728da5e1.html
Supplement:
* Linux Find If Processor / CPU is 64 bit / 32 bit ( long mode ~ lm )
沒有留言:
張貼留言