1. 程式人生 > >linux下檢視cpu物理個數和邏輯個數

linux下檢視cpu物理個數和邏輯個數

hadoop@chw-desktop3:~$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 2
model name	: Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping	: 9
microcode	: 0x17
cpu MHz		: 2992.615
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips	: 5985.23
clflush size	: 64
cache_alignment	: 128
address sizes	: 36 bits physical, 32 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 15
model		: 2
model name	: Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping	: 9
microcode	: 0x17
cpu MHz		: 2992.615
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips	: 5990.44
clflush size	: 64
cache_alignment	: 128
address sizes	: 36 bits physical, 32 bits virtual
power management:

輸入命令cat /proc/cpuinfo 檢視physical id有幾個,上述結果顯示只有0,所以只有一個物理cpu;檢視processor有幾個,上述結果顯示有0和1兩個,所以有兩個邏輯cpu。


(一)概念
① 物理CPU
實際Server中插槽上的CPU個數
物理cpu數量,可以數不重複的 physical id 有幾個
② 邏輯CPU
 /proc/cpuinfo 用來儲存cpu硬體資訊的
資訊內容分別列出了processor 0 –processor n 的規格。這裡需要注意,n是邏輯cpu數
一般情況,我們認為一顆cpu可以有多核,加上intel的超執行緒技術(HT), 可以在邏輯上再分一倍數量的cpu core出來
邏輯CPU數量=物理cpu數量 x cpu cores 這個規格值 x 2(如果支援並開啟ht)    
備註一下:Linux下top檢視的CPU也是邏輯CPU個數
 ③ CPU核數
一塊CPU上面能處理資料的晶片組的數量、比如現在的i5 760,是雙核心四執行緒的CPU、而 i5 2250 是四核心四執行緒的CPU
一般來說,物理CPU個數×每顆核數就應該等於邏輯CPU的個數,如果不相等的話,則表示伺服器的CPU支援超執行緒技術
㈡ 檢視CPU資訊
當我們 cat /proc/cpuinfo 時、
具有相同core id的CPU是同一個core的超執行緒
具有相同physical id的CPU是同一個CPU封裝的執行緒或核心
㈢ 下面舉例說明
① 檢視物理CPU的個數
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l  
2  
② 檢視邏輯CPU的個數
#cat /proc/cpuinfo |grep "processor"|wc -l  
24  
③ 檢視CPU是幾核
#cat /proc/cpuinfo |grep "cores"|uniq  
6   
我這裡應該是2個Cpu,每個Cpu有6個core,應該是Intel的U,支援超執行緒,所以顯示24