您的位置:首页 > 产品设计 > UI/UE

cat /proc/cpuinfo 引发的思考--CPU 物理封装-物理核心-逻辑核心-超线程之间关系

2017-08-15 21:47 726 查看
CPU的物理封装,一个物理封装使用独立的一个CPU物理插槽,共享电源和风扇;

CPU物理核心:在一个物理封装中封装了多个独立CPU核心,每一个CPU核心都有自己独立的完整硬件单元。

CPU逻辑核心:一个CPU物理核心对外表现为多个独立的外部CPU接口,称这种每一个CPU接口为一个逻辑核心。其内部可能共享运行单元和缓存等。

CPU逻辑核心是超线程技术下的产物,假设没有超线程技术,有多少颗物理CPU核心,OS就觉得有多少颗CPU。OS是根据CPU的外部接口来识别CPU数据,而不是根据CPU的实际内部构造。所以超线程技术

会使OS识别出很多其它颗CPU.

每一个物理封装上能够有多个CPU核心,每一个CPU物理核心(超线程技术)能够有多个逻辑核心;OS看到的是全部的逻辑核心的数目。

超线程技术,全名为Hyper-Threading:超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,降低了CPU的闲置时间,提高的CPU的执行速度

多核心处理器:每一个物理封装上封装了多个CPU核心,每一个核心都是独立的处理器芯片,二者除了封装在一起。基本不共享其它物理部件;

超线程技术:仅仅是外部接口上让OS软件看到的是两个核心,实际内部多个逻辑核心内部共享:运行单元和缓存等。其出现的主要目的是CPU和内存速度差异较大,系统瓶颈不在CPU的运行单元,而在外部的

存储器,通过超线程技术,提高CPU使用效率;

#############################################################

cat /proc/cpuinfo 关于CPU的核心參数说明:

physical id:CPU的物理封装的编号,从0開始依次编码;

siblings: 每一个物理封装上的逻辑核心数目;

cpu cores: 每一个物理封装上的物理核心数目。

core id: 当前物理核心在物理封装上的编号

processor: 逻辑CPU核心编号。从0開始依次编码;

上述数字关系:

siblings/(cpu cores) = 每一个CPU物理核心下逻辑CPU数目,假设等于1 则没有超线程,假设大于1则有超线程。

siblings*(max(physical id) +1) = 机器全部逻辑核心的数目 = max(processor)+1

演示样例:

processor : 23 #逻辑CPU编号23

vendor_id : GenuineIntel

cpu family : 6

model : 45

model name : Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz

stepping : 7

cpu MHz : 1999.772

cache size : 15360 KB

physical id : 1 #物理封装编号是1

siblings : 12 #每一个物理封装有12个逻辑核心(cpu)

core id : 5 #当前物理核心的在当前物理封装中的编号

cpu cores : 6 #每一个物理封装有6个物理核心(cpu)

core id: 当前物理封装下物理核心编号。同一封装下物理核心不同,可是不同物理封装下,物理核心能够同样;

However /proc/cpuinfo has a field named 'core id' which is a unique id for each core in a single processor

#lscpu 更清晰:

[root@TENCENT64 /data1/andes/201507]# lscpu

Architecture: x86_64 #64位架构

CPU op-mode(s): 32-bit, 64-bit #支持32 64位

Byte Order: Little Endian #小端

CPU(s): 12 #逻辑核心12个

On-line CPU(s) list: 0-11 #逻辑核心编号0-11

Thread(s) per core: 2 #每一个物理核心2个逻辑核心。超线程

Core(s) per socket: 6 #每一个物理封装有6个物理核心

CPU socket(s): 1 #总共1个CPU槽位,支持一个物理封装

NUMA node(s): 1

Vendor ID: GenuineIntel

CPU family: 6

Model: 62

Stepping: 4

CPU MHz: 2100.059 #cpu频率2.1GHZ

BogoMIPS: 4199.88

Virtualization: VT-x

L1d cache: 32K

L1i cache: 32K

L2 cache: 256K

L3 cache: 15360K

NUMA node0 CPU(s): 0-11

#########################################################

#工具字典

1.查看物理封装个数:

cat /proc/cpuinfo |grep "physical id"|sort |uniq

2.查看逻辑核心数目:

cat /proc/cpuinfo |grep "processor"

3.查看每一个物理封装下物理core数目:

cat /proc/cpuinfo |grep "cpu cores"

4.查看每一个物理封装下逻辑cpu的数目:

cat /proc/cpuinfo |grep "siblings" |uniq

5.查看是否有超线程

cat /proc/cpuinfo |grep "siblings" |uniq && cat /proc/cpuinfo |grep "cpu cores" |uniq

看下siblings 数目与cpu cores数目之间的关系

6.最清晰的展现CPU信息 lscpu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: