NUMA架构下的CPU拓扑
目前多核已经越来越普遍的使用,Linux对NUMA架构的支持也越来越完善。对于内存管理、多处理的负载均衡调度等进行了大量的优化工作。
NUMA相关的几个概念有node、socket、core和thread。Socket是一个物理上的概念,指的是主板上的cpu插槽。Node是一个逻辑上的概念,对应于socket。Core就是一个物理cpu,一个独立的硬件执行单元。Thread就是超线程的概念,是一个逻辑cpu,共享core上的执行单元。
下面将结合自己机器来看下NUMA架构下的CPU拓扑关系。
NUMA使用node来管理cpu和内存。
可以看到机器上有两个node,分别为node0和node1。
Socket的信息可以通过/proc/cpuinfo查看,里面的physical id标示的就是socket号。
可以看到机器上面有两个socket,编号分别为0和1。我的机器上一个node对应于一个scoket。
Node0上共有20个cpu,编号为cpu0~cpu9,cpu20~cpu29
Node1上共有20个cpu,编号为cpu10~cpu19,cpu30~cpu39
下面看下core的信息,core也是通过/proc/cpuinfo查看,其中和core相关的信息有:
core id |
此cpu在所在core中的编号 |
cpu cores |
一个socket上面有多少个core |
我的机器上每个socket上面有10个core
这10个core的编号为0~4和8~12。
上面的信息可知每个Node上面有20个cpu,10个core,则每个core里面有两个cpu,也就是thread的概念。
下面来看下thread的信息,cat /proc/cpuinfo可以看到每个thread,也就是每个逻辑cpu的详细信息。
上面是cpu0的详细信息,红色框中是相关的几条信息。
physical id为0表示此cpu在socket0也就是node0上面
cpu cores为10表示此node上面有10个core
core id为0表示此cpu在node0的core0上面
siblings为20表示此cpu0在core0里面的兄弟逻辑cpu为cpu20
到目前为止我们知道了cpu0和cpu20是node0上的core0里面的两个兄弟逻辑cpu,按照intel的组织架构,这两个cpu是应该共享L1 cache和L2 cache的。L1 cache又分为数据cache和指令cache。
CPU0的cache信息如上图所示,index0对应的是L1 Data Cache,index1对应的是L1 Instruction Cache,index2对应的是L2 Cache,index3对应的是L3 Cache。
L1 Data Cache的大小为32k字节,共享此cache的cpu有cpu0和cpu20。
L1 Instruction Cache的大小为32k字节,共享此cache的cpu有cpu0和cpu20。
L2 Cache的大小为256k字节,共享此cache的cpu有cpu0和cpu20。
L3 Cache的大小为25600K字节,共享此cache的cpu有cpu0~cpu9和cpu20~cpu29,即node0上的所有cpu。
遍历所有的cpu信息,可知cpu的拓扑架构如下所示:
上面的CPU拓扑架构图还不完整,每个node都有一个对应的本地内存。假设node0的本地内存标记为mem0,node1的本地内存标记为mem1。mem0对于node0就是本地内存,mem1对于node0就是远端内存;反之对于mem1亦有类似关系。
访问本地内存的速度要快于访问远端内存的速度。访问速度与node的距离有关系,node间的距离我们称为node distance。
Node0的本地内存大小为32209MB,Node1的本地内存大小为32316MB。Node0到本地内存的distance为10,到node1的内存distance距离为20;Node1到本地内存的distance为10,到node0的内存distance距离为20。
NUMA架构下的CPU拓扑相关推荐
- numa节点_NUMA架构下的内存访问延迟区别!
现在的服务器物理机CPU一般都是多个CPU,核数也是十几甚至几十核.内存几十GB甚至是上百G,也是由许多条组成的.那么我这里思考一下,这么多的CPU和内存它们之间是怎么互相连接的?同一个CPU核访问不 ...
- NUMA架构的CPU
本文从NUMA的介绍引出常见的NUMA使用中的陷阱,继而讨论对于NUMA系统的优化方法和一些值得关注的方向. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) ...
- NUMA架构的CPU -- 你真的用好了么?
本文从NUMA的介绍引出常见的NUMA使用中的陷阱,继而讨论对于NUMA系统的优化方法和一些值得关注的方向. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) ...
- Linux NUMA 架构 :基础软件工程师需要知道一些知识
文章目录 前言 从物理CPU.core到HT(hyper-threading) UMA(Uniform memory access) NUMA架构 NUMA下的内存分配策略 1. MPOL_DEFAU ...
- 深入浅出NUMA架构
一:为什么要有NUMA架构 计算机硬件经过几代的迭代发展,进入了多处理器多核心的时代.在经典的计算机系统中一般都有两个标准化的部分:北桥(North Bridge)和南桥(South Bridge). ...
- 六、CPU优化(4)NUMA架构
一.服务器系统架构 从系统架构来看,目前的商用服务器大体可以分为以下三类 1. 即对称多处理器结构(SMP:Symmetric Multi-Processor),, 在SMP架构中,每个CPU对称工作 ...
- 剖析Intel IA32架构下C语言及CPU浮点数机制
(转载请注名原作者及出处) pdf格式下载:http://www.binghua.com/Soft/Class2/Class5/200409/63.html 剖析Intel IA32架构下C语言及CP ...
- OpenStack Nova 高性能虚拟机之 NUMA 架构亲和
目录 文章目录 目录 写在前面 Nova 实现的 NUMA 亲和 Nova 定义的 NUMA 对象概念 实现 NUMA 亲和的背景 操作系统发行版许可证(Licensing) CPU 拓扑对性能的影响 ...
- 分布式服务架构下的混沌工程实践
本文来自阿里巴巴高可用架构团队高级开发工程师肖长军(花名穹谷)在 GIAC(全球互联网架构大会)上的分享,包含三部分内容:(阿里巴巴中间件公众号对话框发送"混沌工程",获取分享PP ...
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Oops在Linux 2.6内核+PowerPC架构下的前世今生
Oops在Linux 2.6内核+PowerPC架构下的前世今生 Sailor_forever sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人blo ...
最新文章
- FastSpeech语音合成系统技术升级,微软联合浙大提出FastSpeech2
- 一张图看Windows Store有多混乱 微软现在开始整治
- 如何使用GitHub Action自动发布JAR到Maven仓库
- 【AI2】更新app inventor离线开发环境百度网盘下载链接,安卓app图形化开发环境...
- Nodejs中puppeteer通过Event抓取HAR数据
- Testing - Codereview Checklist
- js之面向对象编程,封装 继承 多态(详细篇)
- SQL常见错误及处理方法
- 《Cisco安全防火墙服务模块(FWSM)解决方案》——2.6 硬件架构
- android蓝牙取sbc音频数据
- 【css】css实现斜线表头
- 安搭Share:霜降来,寒意到
- 【高等数学】曲率和曲率半径
- num_workers
- 关于原神抽奖概率的简要分析
- C语言入门(什么是C语言,C语言的编程机制以及一些基础计算机概念)
- 关于XAMPP下载安装的一些问题
- 济南SEO推荐高质量外链时代的到来
- 掌握这15个可视化图表,小白也能轻松玩转数据分析
- 20110400笑话
热门文章
- Java学习笔记(六)数据的操作(增、删、改的操作)
- croppic 图片裁剪
- [转][Err] 1452 - Cannot add or update a child row: a foreign key constraint fail
- [导入]需要关注的十大安全技巧之:免受垃圾邮件侵扰
- PHP 5.6 已结束安全支持,你升级到 PHP 7 系列了吗?
- cronmon 定时任务执行状态监控
- 可见面判别算法---深度排序算法
- l2tp pptp相关的一些记录
- MYSQL服务器my.cnf配置文档详解
- [导入]在没有 IIS 的条件下运行 ASMX