目前多核已经越来越普遍的使用,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拓扑相关推荐

  1. numa节点_NUMA架构下的内存访问延迟区别!

    现在的服务器物理机CPU一般都是多个CPU,核数也是十几甚至几十核.内存几十GB甚至是上百G,也是由许多条组成的.那么我这里思考一下,这么多的CPU和内存它们之间是怎么互相连接的?同一个CPU核访问不 ...

  2. NUMA架构的CPU

    本文从NUMA的介绍引出常见的NUMA使用中的陷阱,继而讨论对于NUMA系统的优化方法和一些值得关注的方向. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) ...

  3. NUMA架构的CPU -- 你真的用好了么?

    本文从NUMA的介绍引出常见的NUMA使用中的陷阱,继而讨论对于NUMA系统的优化方法和一些值得关注的方向. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) ...

  4. Linux NUMA 架构 :基础软件工程师需要知道一些知识

    文章目录 前言 从物理CPU.core到HT(hyper-threading) UMA(Uniform memory access) NUMA架构 NUMA下的内存分配策略 1. MPOL_DEFAU ...

  5. 深入浅出NUMA架构

    一:为什么要有NUMA架构 计算机硬件经过几代的迭代发展,进入了多处理器多核心的时代.在经典的计算机系统中一般都有两个标准化的部分:北桥(North Bridge)和南桥(South Bridge). ...

  6. 六、CPU优化(4)NUMA架构

    一.服务器系统架构 从系统架构来看,目前的商用服务器大体可以分为以下三类 1. 即对称多处理器结构(SMP:Symmetric Multi-Processor),, 在SMP架构中,每个CPU对称工作 ...

  7. 剖析Intel IA32架构下C语言及CPU浮点数机制

    (转载请注名原作者及出处) pdf格式下载:http://www.binghua.com/Soft/Class2/Class5/200409/63.html 剖析Intel IA32架构下C语言及CP ...

  8. OpenStack Nova 高性能虚拟机之 NUMA 架构亲和

    目录 文章目录 目录 写在前面 Nova 实现的 NUMA 亲和 Nova 定义的 NUMA 对象概念 实现 NUMA 亲和的背景 操作系统发行版许可证(Licensing) CPU 拓扑对性能的影响 ...

  9. 分布式服务架构下的混沌工程实践

    本文来自阿里巴巴高可用架构团队高级开发工程师肖长军(花名穹谷)在 GIAC(全球互联网架构大会)上的分享,包含三部分内容:(阿里巴巴中间件公众号对话框发送"混沌工程",获取分享PP ...

  10. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Oops在Linux 2.6内核+PowerPC架构下的前世今生

    Oops在Linux 2.6内核+PowerPC架构下的前世今生 Sailor_forever  sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人blo ...

最新文章

  1. FastSpeech语音合成系统技术升级,微软联合浙大提出FastSpeech2
  2. 一张图看Windows Store有多混乱 微软现在开始整治
  3. 如何使用GitHub Action自动发布JAR到Maven仓库
  4. 【AI2】更新app inventor离线开发环境百度网盘下载链接,安卓app图形化开发环境...
  5. Nodejs中puppeteer通过Event抓取HAR数据
  6. Testing - Codereview Checklist
  7. js之面向对象编程,封装 继承 多态(详细篇)
  8. SQL常见错误及处理方法
  9. 《Cisco安全防火墙服务模块(FWSM)解决方案》——2.6 硬件架构
  10. android蓝牙取sbc音频数据
  11. 【css】css实现斜线表头
  12. 安搭Share:霜降来,寒意到
  13. 【高等数学】曲率和曲率半径
  14. num_workers
  15. 关于原神抽奖概率的简要分析
  16. C语言入门(什么是C语言,C语言的编程机制以及一些基础计算机概念)
  17. 关于XAMPP下载安装的一些问题
  18. 济南SEO推荐高质量外链时代的到来
  19. 掌握这15个可视化图表,小白也能轻松玩转数据分析
  20. 20110400笑话

热门文章

  1. Java学习笔记(六)数据的操作(增、删、改的操作)
  2. croppic 图片裁剪
  3. [转][Err] 1452 - Cannot add or update a child row: a foreign key constraint fail
  4. [导入]需要关注的十大安全技巧之:免受垃圾邮件侵扰
  5. PHP 5.6 已结束安全支持,你升级到 PHP 7 系列了吗?
  6. cronmon 定时任务执行状态监控
  7. 可见面判别算法---深度排序算法
  8. l2tp pptp相关的一些记录
  9. MYSQL服务器my.cnf配置文档详解
  10. [导入]在没有 IIS 的条件下运行 ASMX