17 | NUMA:非均匀访存带来了哪些提升与挑战?
海纳
你好,我是海纳。
这节课,我们先会对计算机是如何组织外设所使用的内存进行分析,因为这是你了解设备驱动开发的基础;接下来,我们将分析主存,不过在展开之前,你还是需要了解一下它的内部结构,才能更好的理解。
如果你从 CPU 的角度去看,就会发现物理内存并不是平坦的,而是坑坑洼洼的。正是因为这样的特点,也就导致 CPU 对物理内存的访问速度也不一样。同时,有些内存可以使用 CPU Cache,有些则不可以。我们把这种组织方式称为异质(Heterogeneity)式的结构。
再往深入拆解,在异质式结构中,CPU 不仅仅对外设内存和主存的访问速度不一样,它访问主存不同区间的速度也不一样。换句话说,不同的 CPU 访问不同地址主存的速度各不相同,我们把采用这种设计的内存叫做非一致性访存(Non-uniform memory access,NUMA)。
通常,在进行应用程序内存管理时,正确使用 NUMA 可以极大地提升应用程序的吞吐量;相应地,如果 NUMA 的配置不合理,也有可能带来比较大的负面影响。而且,在多核体系结构的服务器上,合理地通过控制 NUMA 的绑定,来提升应用程序的性能,对于服务端程序员至关重要。为了帮助你合理运用 NUMA,今天这节课,我们就来详细分析 NUMA 会为应用程序带来哪些提升与挑战。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
NUMA架构在多核服务器中的重要性日益凸显,本文详细介绍了NUMA架构的背景、原理以及合理配置NUMA来提升应用程序性能的方法。通过将内存分为多个节点,NUMA架构使得CPU可以优先访问离自己近的内存节点,从而提高访问效率。相比之下,UMA架构由于基于总线连接,随着处理器核数增多,面临带宽压力增大的问题,因此NUMA架构逐渐成为主流选择。文章还介绍了numactl工具的使用方法,以及正确绑定CPU和内存节点来提升应用程序性能的重要性。此外,文章还强调了NUMA内存策略对应用程序性能的影响,以及正确配置的重要性。通过本文的阅读,读者可以深入了解NUMA架构及其对应用程序性能的影响,以及如何通过合理配置来优化应用程序性能。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编程高手必学的内存知识》,新⼈⾸单¥59
《编程高手必学的内存知识》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- LDxyNUMA架构是用于多个CPU的架构而不是多核单CPU的架构吧?Linux的终端模式是不是就是字符模式,而桌面模式就是图形模式?
作者回复: 对,对。SMP架构是指多CPU架构,而不是多核。我的专栏里可能没太注意区分多CPU和多核,有的地方可能存在不太准确的情况。第二个问题,答案是,对的,你这么理解是对的。
2021-12-073 - 送过快递的码农老师,nginx采用多进程的模型通过绑定核心的方式,是不是也是巧妙运用NUMA架构?
作者回复: 在多处理器架构上,类似nginx这种框架基本都考虑了numa的影响。它们大多会采用libnuma所提供的API来自主控制NUMA策略。
2021-12-092 - 送过快递的码农是不是有段内存是留给bios的?老师我在mac上面通过gcc把一个简单的c变异最终得到a.out 和老师专栏里面多次提到的a.out是一回事儿么?表示类unix下的课执行文件么?
作者回复: 好问题呀。答案是:不是一回事。gcc默认的编译输出文件名是a.out,这是从上古时代遗留来的。我在文章里提到的a.out,是指早期的一种文件格式。
2021-12-09 - 李圣悦最近dpdk上做开发,还一直在想这个问题,数据包从一个网卡收包处理完转发到另外一个网卡,网卡1绑定到node0,网卡2绑定到node1;从网卡1到网卡2,业务内存在node0上分配;从网卡2到网卡2,业务内存应该在node1上分配;但业务内存没法拆成两个方向,请教老师,这个该怎么处理比较好?2022-04-19
- 张Daveswap替换,哪一章节有详细介绍啊?2022-02-10
收起评论