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

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

  1. 查看cpu的信息cat /proc/cpuinfo

    cat /proc/cpuinfo processor : vendor_id : GenuineIntel cpu family : model : model name : Intel(R) Co ...

  2. cat /proc/cpuinfo 讲解

    查看cpu信息有什么用呢,我们来看看到底有哪些用处:1.和云服务提供商核算成本,现在基本是cpu和内存的费用最大,硬盘大小几乎被忽略了2.我们写程序时候是会关注多核还是单核的,否则不能充分利用多线程等 ...

  3. linux cat /proc/cpuinfo

    #cat /proc/cpuinfo processor : 0 #逻辑处理器的唯一标识符 vendor_id : AuthenticAMD #CPU厂商ID信息,如果处理器为英特尔处理器,则vend ...

  4. 每天记命令:lscpu 和 cat /proc/cpuinfo

    [1]lscpu lscpu命令,查看cpu相关的统计信息. socket 就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数(比如上例,可以插入1个CPU). core 就是我们平时说的 ...

  5. /proc/cpuinfo 文件分析(查看CPU信息)

    /proc/cpuinfo文件分析 根据以下内容,我们则可以很方便的知道当前系统关于CPU.CPU的核数.CPU是否启用超线程等信息. <1>查询系统具有多少个逻辑核:cat /proc/ ...

  6. 2017-07-02(free uptime cat /proc/cpuinfo uname lsb_release)

    free -b 字节为单位显示 -k KB为单位显示,默认显示就是KB -m 以MB为单位显示 -g 以GB为单位显示 free -m free 显示说明 uptime 跟top命令第一行内容相同 c ...

  7. cat /proc/cpuinfo | awk -F: '/name/{print $2}' | uniq -c

    cat /proc/cpuinfo | awk -F: '/name/{print $2}' | uniq -c

  8. lscpu和cat /proc/cpuinfo

    lscpu的使用 描述: 此命令用来显示cpu的相关信息 lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读 命令输出的信息包含cpu数量,线程,核数,套接字 ...

  9. [转]linux /proc/cpuinfo 文件分析

    在Linux系统中,提供了proc文件系统显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到.本文章针对该文件进行简单的总结. 基于不同指 ...

随机推荐

  1. Mysql数据库的瓶颈处理一点建议

    Mysql数据库的瓶颈处理一点建议         我们在使用Mysql数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候.磁盘I/O瓶颈的出 ...

  2. node 内存溢出

    遇到这个问题的人可以更快解决 再复制写一篇 利于百度搜索 坑爹的node 内存溢出 react开发项目  安装一个插件依赖 ,然后就报错了 报错如下(自己的没有截图出来 这是从别人的截图---报错基本 ...

  3. IOS-Run loop学习总结

    不知道大家有没有想过这个问题,一个应用開始执行以后放在那里,假设不正确它进行不论什么操作.这个应用就像精巧了一样,不会自发的有不论什么动作发生.可是假设我们点击界面上的一个button.这个时候就会有 ...

  4. 100.dll调用

    在dll中声明 _declspec(dllexport) ; _declspec(dllexport)void go() { MessageBoxA(, ); } 调用dll HINSTANCE hl ...

  5. Jszip的使用和打包下载图片

    因为canvas总结到后面又想到了jszip的一些事情,那就索性也回去看看吧.试过,至少谷歌和火狐都是支持jszip的. 1.  jszip的使用 官方文档说的很清楚了,而且也有读取zip文件.生成z ...

  6. [置顶] WebService学习总结(3)——使用java JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  7. [Node.js] Node Util Promisify - How to Convert Callback Based APIs to Promise-based

    Since Node.js V8.0+, it introduces a 'util' libaray, which has a 'promisfy' function. It can conver ...

  8. java set转list,数组与list的转换

    读zookeeper的源码(zookeeper.java)时发现的,平时没有怎么注意: private final ZKWatchManager watchManager; List<Strin ...

  9. 【CS Round #48 (Div. 2 only)】8 Divisible

    [链接]h在这里写链接 [题意] 给你一个长度为n的数字(n<=1000) 然后让你任意组合这个数字. 使得这个数字能被8整除. (不能出现前导0) [题解] 只要后三位能被8整除就可以了. 则 ...

  10. 从Unreal Engine 3到Unreal Engine 4

    Unreal Engine 4公布好长好长时间了.直到近期才有时间细致去看一下. TimSweeney老大一句话"IF YOU LOVE SOMETHING, SET IT FREE&quo ...