因为要更详细的了解NUMA(非一致内存访问),所以,顺带重新了解了下自己机子上的CPU相关的详细信息:通过查看/proc/cpuinfo文件就可以了解。
-
root@Lenovo:/# cat proc/cpuinfo
想知道自己的机器是几核?几线程?几个物理CPU?几个逻辑CPU?
看看cpuinfo打印出来的信息:
判断依据:
1.具有相同core id的cpu是同一个core的[1]。
2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。
@物理CPU的个数:
-
root@Lenovo:/# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
-
1
@逻辑CPU个数:
-
root@Lenovo:/# cat /proc/cpuinfo | grep "processor" | wc -l
-
4
@每个物理CPU中core的个数(cpu是几核):
-
helianthus@Lenovo:~$ cat /proc/cpuinfo |grep "cores"|uniq
-
cpu cores : 2
或者
-
root@Lenovo:/# cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F: '{print $2}'
-
2
@每个物理CPU上core id的数量,也就是每个
物理CPU中core的个数:
-
root@Lenovo:/# cat /proc/cpuinfo | grep "core id"
-
core id : 0
-
core id : 0
-
core id : 2
-
core id : 2
@是否为超线程(
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的):
可以从上面看出,超线程是打开的
@每个物理CPU中逻辑CPU(core or thread, or both of ...)的个数:
-
root@Lenovo:/# cat /proc/cpuinfo | grep "siblings"
-
siblings : 4
-
siblings : 4
-
siblings : 4
-
siblings : 4
/proc/cpuinfo 文件包含系统上每个处理器的数据段落。/proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程(HT)技术检查:processor, vendor id, physical id, siblings, core id 和 cpu cores。
processor 条目包括这一逻辑处理器的唯一标识符。
physical id 条目包括每个物理封装的唯一标识符。
core id 条目保存每个内核的唯一标识符。
siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
cpu cores 条目包含位于相同物理封装中的内核数量。
如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel。
1.拥有相同 physical id 的所有逻辑处理器共享同一个物理插座。每个 physical id 代表一个唯一的物理封装。
2.Siblings 表示位于这一物理封装上的逻辑处理器的数量。它们可能支持也可能不支持超线程(HT)技术。
3.每个 core id 均代表一个唯一的处理器内核。所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。
4.如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
5.如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。
判断CPU是否64位,检查cpuinfo中的flags区段,看是否有lm标识:
-
flags : 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 rdtscp lmconstant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
自己的机器是32位,但是支持64bit,所以有lm标志。
@查看CPU型号:
-
root@Lenovo:/# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
-
4 Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
@查看CPU运行模式:
-
root@Lenovo:/# getconf LONG_BIT
-
32
@查看CPU是否支持64bit(
结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit):
-
root@Lenovo:/# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
-
4
@查看当前操作系统发行版:
-
root@Lenovo:/# cat /etc/issue
-
Ubuntu 12.04 LTS \n \l
@查看当前操作系统内核信息:
-
root@Lenovo:/# uname -a
-
Linux Lenovo 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux
前面都是一些零碎的记录,最后比较全面的记录一下CPU相关信息:
-
root@Lenovo:/# cat proc/cpuinfo
-
processor : 0
-
vendor_id : GenuineIntel
-
cpu family : 6 cpu系列是6
-
model : 37 型号37
-
model name : Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
-
stepping : 2 步进是2
-
microcode : 0x9
-
cpu MHz : 2133.000 cpu主频是2133MHz
-
cache size : 3072 KB
-
physical id : 0
-
siblings : 4
-
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 : 11
-
wp : yes
-
flags : 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 rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
-
bogomips : 4256.52
-
clflush size : 64
-
cache_alignment : 64
-
address sizes : 36 bits physical, 48 bits virtual
-
power management:
[1].
超线程技术(Hyper-Threading Technology)是Intel公司在2002年发布的一项新技术。所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术。多线程技术可以在支持多线程的操作系统和软件上,有效的增强处理器在多任务、多线程处理上的处理能力。
参考资料:
阅读(1835) | 评论(0) | 转发(0) |