本文内容为读书笔记,摘自《深入浅出DPDK》。


47.NUMA系统

之前的章节已经简要介绍过NUMA系统,它是一种多处理器环境下设计的计算机内存结构。NUMA系统是从SMP(Symmetric Multiple Processing,对称多处理器)系统演化而来。

SMP系统最初是在20世纪90年代由Unisys、Convex Computer(后来的HP)、Honeywell、IBM等公司开发的一款商用系统,该系统被广泛应用于Unix类的操作系统,后来又扩展到Windows NT中,该系统有如下特点:

  • 1)所有的硬件资源都是共享的。即每个处理器都能访问到任何内存、外设等。
  • 2)所有的处理器都是平等的,没有主从关系。
  • 3)内存是统一结构、统一寻址的(UMA, Uniform Memory Architecture)。
  • 4)处理器和内存,处理器和处理器都通过一条总线连接起来。

其结构如图2-14所示:

SMP的问题也很明显,因为所有的处理器都通过一条总线连接起来,因此随着处理器的增加,系统总线成为了系统瓶颈,另外,处理器和内存之间的通信延迟也较大。为了克服以上的缺点,才应运而生了NUMA架构,如图2-15所示。

图2-14SMP系统示意图

图2-15 NUMA系统示意图

NUMA是起源于AMD Opteron的微架构,同时被英特尔Nehalem架构采用。在这个架构中,处理器和本地内存之间拥有更小的延迟和更大的带宽,而整个内存仍然可作为一个整体,任何处理器都能够访问,只不过跨处理器的内存访问的速度相对较慢一点。同时,每个处理器都可以拥有本地的总线,如PCIE、SATA、USB等。和内存一样,处理器访问本地的总线延迟低,吞吐率高;访问远程资源,则延迟高,并且要和其他处理器共享一条总线。图2-16是英特尔公司的至强E5服务器的架构示意图。

图2-16 至强E5服务器架构示意图

可以看到,该架构有两个处理器,处理器通过QPI总线相连。每个处理器都有本地的四个通道的内存系统,并且也有属于自己的PCIE总线系统。两个处理器有点不同的是,第一个处理器集成了南桥芯片,而第二个处理器只有本地的PCIE总线。

和SMP系统相比,NUMA系统访问本地内存的带宽更大,延迟更小,但是访问远程的内存成本相对就高多了。因此,我们要充分利用NUMA系统的这个特点,避免远程访问资源。

以下是DPDK在NUMA系统中的一些实例。

  • 1)Per-core memory。一个处理器上有多个核(core), per-core memory是指每个核都有属于自己的内存,即对于经常访问的数据结构,每个核都有自己的备份。这样做一方面是为了本地内存的需要,另外一方面也是因为上文提到的Cache一致性的需要,避免多个核访问同一个Cache行。
  • 2)本地设备本地处理。即用本地的处理器、本地的内存来处理本地的设备上产生的数据。如果有一个PCI设备在node0上,就用node0上的核来处理该设备,处理该设备用到的数据结构和数据缓冲区都从node0上分配。以下是一个分配本地内存的例子:
/* allocate memory for the queue structure */
q = rte_zmalloc_socket("fm10k", sizeof(*q),   RTE_CACHE_LINE_SIZE, socket_id);

该例试图分配一个结构体,通过传递socket_id,即node id获得本地内存,并且以Cache行对齐。


系列文章

《《深入浅出DPDK》读书笔记(一):基础部分知识点》

《《深入浅出DPDK》读书笔记(二):网卡的读写数据操作》


相关阅读

《NUMA - Non Uniform Memory Architecture 非统一内存架构》

《什么是NUMA?》

《深入浅出DPDK》读书笔记(三):NUMA - Non Uniform Memory Architecture 非统一内存架构相关推荐

  1. NUMA - Non Uniform Memory Architecture 非统一内存架构

    Table of Contents Non Uniform Memory Architecture Unlucky NUMA Placement Optimized NUMA placement No ...

  2. 深入浅出DPDK学习笔记(3)——— Cache和内存

    深入浅出DPDK学习笔记(3)--- Cache和内存 系统架构的演进 Cache系统简介 Cache的种类 TLB Cache Cache地址映射和变换 全关联型Cache 直接关联型Cache 组 ...

  3. 深入浅出数据分析读书笔记

    深入浅出数据分析读书笔记 一.数据分析引言 1.数据分析的基本流程:确定--分解--评估--决策.一个完整的分析项目可能经过多轮流程 确定:客户的论点和数据 分解:将手头的资料汇总为有用的格式 评估: ...

  4. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  5. Node.js: 深入浅出Nodejs读书笔记

    今天终于把朴灵老师写的<深入浅出Node.js>给学习 完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角来揭示Node自己内 ...

  6. 《编程之美》读书笔记(三):烙饼问题与搜索树

    <编程之美>读书笔记三:烙饼问题与搜索树 薛笛 EMail:jxuedi#gmail.com 前面已经写了一些关于烙饼问题的简单分析,但因为那天太累有些意犹未尽,今天再充实一些内容那这个问 ...

  7. 《How Tomcat Works》读书笔记(三)--Connector(连接器)

    <How Tomcat Works>读书笔记(三)--Connector(连接器) 这是<How Tomcat Works>第三四章的读书笔记.主要写了Tomcat4.0默认的 ...

  8. TCPIP详解Protocol 读书笔记(三) IP协议讲解

    TCP/IP详解:Protocol 读书笔记(三) Chapter3 IP:网际协议 文章目录 TCP/IP详解:Protocol 读书笔记(三) Chapter3 IP:网际协议 IP协议 IP数据 ...

  9. 《大型网站技术架构》读书笔记三:大型网站核心架构要素

    来源:http://www.cnblogs.com/edisonchou/p/3806348.html 此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. ...

最新文章

  1. find server/ -type d|xargs -I {} echo mkdir /root/{}
  2. 第九期: 阿里巴巴程序员常用的15款开发者工具
  3. 一位法国女数学史家与中国两代同行的40年交往
  4. 【微信小程序】带你做一个公众号留言系统(附源码)
  5. 【乘风破浪的开发者】华为云云享专家胡琦:快快使用ModelArts,零基础也能玩转AI!
  6. 图解TCPIP-传输层 UDP
  7. web.xml filter 不包含_Elasticsearch 之 Filter 与 Query 有啥不同?
  8. Centos系统创建用户oracle后,用该用户登陆系统,页面加载报错GConf error
  9. win10系统镜像下载及在VMware虚拟机上创建虚拟机
  10. 全国 下拉框 选项值:35个省级行政区
  11. 项目一实时数仓数据采集
  12. vue-pdf的使用
  13. 怎么下载Windows图片和传真查看器
  14. 计算机linux认证-1,Linux认证:Linux点评Debian5个五功能
  15. 实战小项目——基于STM32的蓝牙小车
  16. Leetcode刷题笔记12:【20】有效的括号【155】最小栈【255】用队列实现栈(STL:stackC++ 单引号和双引号)
  17. android教案,android教学教案.doc
  18. polished_project_es6 源码分析 知识点总结
  19. 服务器安装360文档卫士,360文档卫士
  20. Paraview 测试生成管线

热门文章

  1. erp服务器系统分区多大,云服务器的存储容量有多大
  2. Vue 高德地图使用总结
  3. Spring学习(三)
  4. 2019.8.1正则二
  5. js设置百分比保留两位小数
  6. GridView的操作:导出Excel[方案一]
  7. 《超级女声》新增 9月4日 娱乐无极限 回顾超女专辑(都是超女) [共39G的精品]
  8. 3-Spring Boot的数据访问
  9. android 本地 播放器,Android 本地播放器
  10. putty怎么拷贝Linux下的日志,linux 下的 putty 如何复制与粘贴?