2014年4月19日星期六

Linux_031:如何查看机器的CPU信息?


在/proc/cpuinfo这个文件中存储了CPU信息。
信息内容分别列出了processor 0 – n 的规格,注意,这里的n并不是物理CPU的数量,而是逻辑CPU的数量。
以下是其中一个逻辑CPU的信息:

processor : 15
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
stepping : 5
cpu MHz : 2266.779
cache size : 8192 KB
physical id : 1
siblings : 8
core id : 3
cpu cores : 4
apicid : 23
initial apicid : 23
fpu : yes
fpu_exception : yes
cpuid level : 11
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 syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid
bogomips : 4532.68
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

1. 物理CPU
指的是物理机器中CPU插槽上的实际CPU个数。
查看方法:查看/proc/cpuinfo文件中不重复的physical id 有几个,因为具有相同physical id的CPU是同一个CPU封装的Core。
查看命令:cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
我这里是2。

2. 逻辑CPU 
指的是物理机器的CPU Core的总数量。
一般情况下,一颗CPU可能有多核(CPU Core),如果使用了Intel的超线程(Hyper-Threading), CPU Core的数量还要乘以2。
所以,逻辑CPU数量=物理CPU数量 x CPU Core数量 x 2(如果支持并开启HT)。
proc/cpuinfo文件中具有相同core id的CPU是同一个Core的超线程。
查看方法:查看/proc/cpuinfo文件中不重复的processor有几个。
查看命令:cat /proc/cpuinfo |grep "processor"|wc -l
我这里是16。

3. CPU Core
查看方法:查看/proc/cpuinfo文件中不重复的cores有几个。
查看命令:cat /proc/cpuinfo |grep "cores"|uniq 
我这里是4。

结论:我这里应该是2个物理CPU,每个物理CPU有4个Core,并且使用了Intel的超线程,所以显示16个逻辑CPU=2 x 4 x 2。

参考文献:
1. http://baike.baidu.com/link?url=oTAtRWVj2vpIFCgr9B9EFa7ccHMV7_iGBQVzVF-ON3FEKHKuDAZdWSXej9_97UIg
2. http://blog.csdn.net/dba_waterbin/article/details/8644626

没有评论: