#Cat /proc/cpuinfo
linux下
/proc/cpuinfo
文件會顯示cpu的信息
processor 會從0開始記數,繼續下去多個cpu
flags 如果有 ht 說明支持超線程技術
判斷物理CPU的個數可以查看physical id 的值,相同則為同一個物理CPU
processor : 4
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 8
cpu MHz : 3002.700
cache size : 2048 KB
physical id : 9
siblings : 4
core id : 19
cpu cores : 2
------------------------------
processor : 5
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 8
cpu MHz : 3002.700
cache size : 2048 KB
physical id : 9
siblings : 4
core id : 19
cpu cores : 2
-----------------------------------------------
address sizes : 40 bits physical, 48 bits virtual
power management:
關鍵詞: SMP linux 多CPU個數 超線程HT Hyper-Threading
摘抄一些網上的相關知識:
超線程技術就是利用特殊的硬件指令,把兩個邏輯內核模擬成兩個物理芯片,讓單個處理器都能使用線程級並行計算,進而兼容多線程操作系統和軟件,減少了CPU的閒置時間,提高的CPU的運行效率。
采用超線程及時可在同一時間裡,應用程序可以使用芯片的不同部分。雖然單線程芯片每秒鐘能夠處理成千上萬條指令,但是在任一時刻只能夠對一條指令進行操作。而超線程技術可以使芯片同時進行多線程處理,使芯片性能得到提升。
超線程技術是在一顆CPU同時執行多個程序而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個線程,P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代的P4 HT的die的面積比以往的P4增大了5%。而其余部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級緩存)則保持不變,這些部分是被分享的。
雖然采用超線程技術能同時執行兩個線程,但它並不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。當兩個線程都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超線程的性能並不等於兩顆CPU的性能。
英特爾P4 超線程有兩個運行模式,Single Task Mode(單任務模式)及Multi Task Mode(多任務模式),當程序不支持Multi-Processing(多處理器作業)時,系統會停止其中一個邏輯CPU的運行,把資源集中於單個邏輯 CPU中,讓單線程程序不會因其中一個邏輯CPU閒置而減低性能,但由於被停止運行的邏輯CPU還是會等待工作,占用一定的資源,因此Hyper- Threading CPU運行Single Task Mode程序模式時,有可能達不到不帶超線程功能的CPU性能,但性能差距不會太大。也就是說,當運行單線程運用軟件時,超線程技術甚至會降低系統性能,尤其在多線程操作系統運行單線程軟件時容易出現此問題。