cat /proc/cpuinfo 引发的思考--CPU 物理封装-物理核心-逻辑核心-超线程之间关系
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 物理封装-物理核心-逻辑核心-超线程之间关系的更多相关文章
- 查看cpu的信息cat /proc/cpuinfo
cat /proc/cpuinfo processor : vendor_id : GenuineIntel cpu family : model : model name : Intel(R) Co ...
- cat /proc/cpuinfo 讲解
查看cpu信息有什么用呢,我们来看看到底有哪些用处:1.和云服务提供商核算成本,现在基本是cpu和内存的费用最大,硬盘大小几乎被忽略了2.我们写程序时候是会关注多核还是单核的,否则不能充分利用多线程等 ...
- linux cat /proc/cpuinfo
#cat /proc/cpuinfo processor : 0 #逻辑处理器的唯一标识符 vendor_id : AuthenticAMD #CPU厂商ID信息,如果处理器为英特尔处理器,则vend ...
- 每天记命令:lscpu 和 cat /proc/cpuinfo
[1]lscpu lscpu命令,查看cpu相关的统计信息. socket 就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数(比如上例,可以插入1个CPU). core 就是我们平时说的 ...
- /proc/cpuinfo 文件分析(查看CPU信息)
/proc/cpuinfo文件分析 根据以下内容,我们则可以很方便的知道当前系统关于CPU.CPU的核数.CPU是否启用超线程等信息. <1>查询系统具有多少个逻辑核:cat /proc/ ...
- 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 ...
- cat /proc/cpuinfo | awk -F: '/name/{print $2}' | uniq -c
cat /proc/cpuinfo | awk -F: '/name/{print $2}' | uniq -c
- lscpu和cat /proc/cpuinfo
lscpu的使用 描述: 此命令用来显示cpu的相关信息 lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读 命令输出的信息包含cpu数量,线程,核数,套接字 ...
- [转]linux /proc/cpuinfo 文件分析
在Linux系统中,提供了proc文件系统显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到.本文章针对该文件进行简单的总结. 基于不同指 ...
随机推荐
- 利用日志使管理Linux更轻松
利用日志使管理Linux更轻松 操作系统的日志主要具有审计与监测的功能,通过对日志信息的分析,可以检查错误发生的原因,监测追踪入侵者及受到攻击时留下的痕迹,甚至还能实时的进行系统状态的监控.有效利用日 ...
- 记Bootstrap Table两种渲染方式
这里主要区别两种Bootstrap Table的数据渲染方式,一.属性渲染方式,二.JS渲染方式 工作直接接手前人的,之前都直接在table标签上渲染属性,后面因为项目需要,同一页面的表格,需要申请不 ...
- C# Aspect-Oriented Programming(AOP) 利用多种模式实现动态代理
什么是AOP(Aspect-Oriented Programming)? AOP允许开发者动态地修改静态的OO模型,构造出一个能够不断增长以满足新增需求的系统,就象现实世界中的对象会在其生命周期中不断 ...
- MySQL各个版本的区别
文章出自:http://blog.sina.com.cn/s/blog_62b37bfe0101he5t.html 感谢作者的分享 MySQL 的官网下载地址:http://www.mysql. ...
- Unity3D教程:静态调用C#的dll
就像使用.net自带的那些程序集一样.加入Reference,然后使用就可以. 因为windows环境下的Unity编译脚本时,本质上还是生成.net程序集.并且其C#脚本编程事实上就是.net C# ...
- SQL-android uri的使用(转载)
今天在操作android的时候,用到了数据库的访问,就在网上学习了一下关于数据库的知识.其中访问数据库就是通过uri进行的,所以这里总结下android uri的应用. 以下内容参考http://ww ...
- 25.Spring @Transactional工作原理
转自:http://www.importnew.com/12300.html 本文将深入研究Spring的事务管理.主要介绍@Transactional在底层是如何工作的.之后的文章将介绍: prop ...
- Fiddler代理配置
1.下载安装软件Fiddler 2.Fiddler设置HTTPS代理(如果代理的是https请求的需要操作这一步) 打开Fiddler,菜单栏:Tools -> Fiddler Options ...
- selenium 自动化基础知识(各种定位)
元素的定位 webdriver 提供了一很多对象定位方法 例如: [ id ] , name , class name , link text , partial link text , tag n ...
- MySQL系列之七:主从复制(转)
一:实验环境 IP 操作系统 mysql版本号 master 192.168.25.11 CentOS7 5.6.35 slave 192.168.25.10 win10 5.7.18 slave版本 ...