您的位置:首页 > 运维架构 > Linux

Linux下如何正确识别cpu的个数和核数

2014-07-03 11:00 260 查看

以下转自:http://wurhuangfeng.blog.163.com/blog/static/35178241201111235829116/

作者:wurhuang

几个cpu

more /proc/cpuinfo |grep "physical id"|uniq|wc -l每个cpu是几核(假设cpu配置相同)more /proc/cpuinfo |grep "physical id"|grep "0"|wc -lcat /proc/cpuinfo | grep processor1. 查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

2. 查看逻辑CPU的个数
#cat /proc/cpuinfo |grep "processor"|wc -l

3. 查看CPU是几核
#cat /proc/cpuinfo |grep "cores"|uniq

4. 查看CPU的主频
#cat /proc/cpuinfo |grep MHz|uniq # uname -aLinux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux(查看当前操作系统内核信息)
# cat /etc/issue | grep LinuxRed Hat Enterprise Linux AS release 4 (Nahant Update 5)(查看当前操作系统发行版信息)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz(看到有8个逻辑CPU, 也知道了CPU型号)
# cat /proc/cpuinfo | grep physical | uniq -c 4 physical id : 0 4 physical id : 1(说明实际上是两颗4核的CPU)
# getconf LONG_BIT32(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l8(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit) 如何获得CPU的详细信息:linux命令:cat /proc/cpuinfo用命令判断几个物理CPU,几个核等:逻辑CPU个数:
# cat /proc/cpuinfo | grep "processor" | wc -l物理CPU个数:
# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l每个物理CPU中Core的个数:
# cat /proc/cpuinfo | grep "cpu cores" | wc -l是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
# cat /proc/cpuinfo | grep "siblings"

查看当前操作系统内核信息
# uname -aLinux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux
查看当前操作系统发行版信息
#cat /etc/issue
Ubuntu 9.10 \n \l
查看cpu型号

# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2 Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
(看到有2个逻辑CPU, 也知道了CPU型号)

查看物理cpu颗数
# cat /proc/cpuinfo | grep physical | uniq -c2 physical id : 0
(说明实际上是1颗2核的CPU)

查看cpu运行模式
# getconf LONG_BIT32(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

查看cpu是否支持64bit
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l2(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)
查看cpu信息概要(昨天看aix的时候刚发现的,在ubuntu上竟然也有~):#lscpuArchitecture: i686 #架构686
CPU(s): 2 #逻辑cpu颗数是2
Thread(s) per core: 1 #每个核心线程数是1
Core(s) per socket: 2 #每个cpu插槽核数/每颗物理cpu核数是2
CPU socket(s): 1 #cpu插槽数是1
Vendor ID: GenuineIntel #cpu厂商ID是GenuineIntel
CPU family: 6 #cpu系列是6
Model: 23 #型号23
Stepping: 10 #步进是10
CPU MHz: 800.000 #cpu主频是800MHz
Virtualization: VT-x #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item /5d8e0488def3a998a5c272c0.html)
L1d cache: 32K #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache: 32K #一级缓存32K(具体为L1指令缓存为32K)
L2 cache: 3072K #二级缓存3072K

最后来个大而全的:#cat /proc/cpuinfoprocessor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
stepping : 10
cpu MHz : 800.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
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 nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority
bogomips : 4788.60
clflush size : 64
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
stepping : 10
cpu MHz : 800.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
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 nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority
bogomips : 4787.96
clflush size : 64
power management:

很多人都知道, 直接敲 cat /proc/cpuinfo 可以看到详细的cpu信息.信息里会分processor 0 -n, 如果你认为n就是cpu真实核数的话, 就大错特错了.我们知道intel有超线程技术(HT), 它可以在逻辑上分一倍数量的cpu出来.所以, 光看processor数量是不准的.真实的核数, 应该是 cpu cores 这个参数值. [admin@transmit180 logs]$ cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 15model name : Intel(R) Xeon(R) CPU E5310 @ 1.60GHzstepping : 7cpu MHz : 1596.035cache size : 4096 KBphysical id : 0siblings : 4core id : 0cpu cores : 4fdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 10wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl tm2 xtprbogomips : 3194.26 物理cpu数量,可以数不重复的 physical id 有几个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: