Linux檢視實體CPU個數、核數、邏輯CPU個數
# 總核數 = 實體CPU個數 X 每顆實體CPU的核數
# 總邏輯CPU數 = 實體CPU個數 X 每顆實體CPU的核數 X 超線程數
# 檢視實體CPU個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 檢視每個實體CPU中core的個數(即核數) #【實體CPU核心的個數】(1個實體CPU裡面有幾個實體核心)
cat /proc/cpuinfo| grep "cpu cores"| uniq
”cpu cores“指的是一個實體CPU有幾個核
# 檢視邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l
檢視CPU資訊(型号) #【邏輯CPU數量和型号】
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
【實體CPU中邏輯CPU的個數】(如果不使用超線程技術,則此值和實體CPU核心數量一緻;不一緻則為整倍數)
cat /proc/cpuinfo | grep 'siblings' | uniq
“siblings”指的是一個實體CPU有幾個邏輯CPU
【超線程】(分别輸出cpu cores和siblings數量,使用超線程則後者翻倍)
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
如何判斷是否開啟超線程
“超線程(Hyper-Threading,簡稱“HT”)”技術。超線程技術就是利用特殊的硬體指令,把兩個邏輯核心模拟成兩個實體晶片,讓單個處理器都能使用線程級并行計算,進而相容多線程作業系統和軟體,減少了CPU的閑置時間,提高的CPU的運作效率。
超線程技術是在一顆CPU同時執行多個程式而共同分享一顆CPU内的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程,雖然采用超線程技術能同時執行兩個線程,但它并不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個線程都同時需要某一個資源時,其中一個要暫時停止,并讓出資源,直到這些資源閑置後才能繼續。是以超線程的性能并不等于兩顆CPU的性能。