Linux NUMA架构你真的完全get了吗?这能帮你提升系统性能到什么程度?
- 内容介绍
- 文章标签
- 相关推荐
你的服务器明明配置很高,为什么性能还是上不去?先搞懂NUMA
在Linux程序中,你可以基于一个UMA的网站测试NUMA上的应用特性。从另一个角度看,UMA就是只有一个node的特殊NUMA。所以两者可以统一用NUMA模型表示。很多运维和开发同学的痛点是:压测时CPU利用率看着很高,但数据库响应时间却越来越长。业务高峰期出现不明延迟,这往往就是跨节点内存访问和拓扑不匹配造成的。
传统的SMP对称多处理器中,所有处理器都共享程序总线。所以当处理器的数目增大时程序总线的竞争冲突加大,程序总线将成为瓶颈,所以目前SMP程序在 性上受限。你的痛点其实是硬件架构天花板,而不是代码不够快。
为什么它能救你的性能
先说说得弄明白什么是NUMA。NUMA的全称是Non-Uniform Memory Access,非一致内存访问。怎么说呢,简单说就是计算机中的内存分布在多个CPU主要附近。而不是像传统的共享内存那样所有CPU都可以以相同速度直接访问任何内存。
使用者痛点映射
如果你发现同一台机器上不同进程跑出来的延迟相差几倍。或者绑定了CPU后性能反而下降,很可能就是进程跑在了远端内存上。话说回来,NUMA架构的设计原理主要是为了解决多处理器程序中的内存访问瓶颈问题。因为处理器数量的增加,内存带宽需求也会相应提高。只是在传统的统一内存访问UMA架构中,所有处理器共享同一块内存。导致内存访问延迟增加、内存带宽成为程序性能的瓶颈。
在NUMA架构中。每个节点的处理器具有本地内存,处理器访问本地内存的延迟较低。这种局部性原则对...有帮助减少内存访问延迟,提高处理器之间的协同性能。通过利用局部性原则,操作程序和应用程序可以实现更高效的任务调度和内存分配策略。从而进一步提高NUMA程序的性能。
形象地说NUMA架构的好处是离CPU越近的内存,打开速度越快。这就好像你把水果放在厨房,而不是放在客厅,出现明显的卡顿和吞吐量下降。
SMP、NUMA、MPP三类架构怎么选,你踩过哪个坑
SMP Symmetric Multiprocessor 对称多处理器
SMP中所有CPU共享同一块物理存储器。通过高速互连构成高速缓存一致性程序结构,是为了解决多CPU程序下共享BUS带来的性能问题。因为主要数增多,总线竞争导致 受限。
MPP Massive Parallel Processing 海量并行处理
MPP由若干个独立的子程序,通常用于超算场景。
User Pain Point
SMP适合中小规模OLTP。但一旦上到双路以上大机,很多团队会误以为加核就能线性提高,结果遇到总线与远程访存双重瓶颈;盲目选择MPP又会导致开发复杂度暴增。
CPU常见的三大架构区别速览
SMP程序结构介绍从程序架构来看。目前商用服务器大体可分为三类,即对称多处理器结构SMP,非一致存储访问结构NUMA,还有海量并行处理结构MPP。它们的特征分别描述如下服务器数据库处理单元数据仓库并行处理最近在学习.NET并行计算技术时接触到的服务器 NUM A架构,就是典型例子。
N U M A 的真实优势与常见误区
N U M A 的优势场景:OLTP事务处理和高并发服务
你的服务器明明配置很高,为什么性能还是上不去?先搞懂NUMA
在Linux程序中,你可以基于一个UMA的网站测试NUMA上的应用特性。从另一个角度看,UMA就是只有一个node的特殊NUMA。所以两者可以统一用NUMA模型表示。很多运维和开发同学的痛点是:压测时CPU利用率看着很高,但数据库响应时间却越来越长。业务高峰期出现不明延迟,这往往就是跨节点内存访问和拓扑不匹配造成的。
传统的SMP对称多处理器中,所有处理器都共享程序总线。所以当处理器的数目增大时程序总线的竞争冲突加大,程序总线将成为瓶颈,所以目前SMP程序在 性上受限。你的痛点其实是硬件架构天花板,而不是代码不够快。
为什么它能救你的性能
先说说得弄明白什么是NUMA。NUMA的全称是Non-Uniform Memory Access,非一致内存访问。怎么说呢,简单说就是计算机中的内存分布在多个CPU主要附近。而不是像传统的共享内存那样所有CPU都可以以相同速度直接访问任何内存。
使用者痛点映射
如果你发现同一台机器上不同进程跑出来的延迟相差几倍。或者绑定了CPU后性能反而下降,很可能就是进程跑在了远端内存上。话说回来,NUMA架构的设计原理主要是为了解决多处理器程序中的内存访问瓶颈问题。因为处理器数量的增加,内存带宽需求也会相应提高。只是在传统的统一内存访问UMA架构中,所有处理器共享同一块内存。导致内存访问延迟增加、内存带宽成为程序性能的瓶颈。
在NUMA架构中。每个节点的处理器具有本地内存,处理器访问本地内存的延迟较低。这种局部性原则对...有帮助减少内存访问延迟,提高处理器之间的协同性能。通过利用局部性原则,操作程序和应用程序可以实现更高效的任务调度和内存分配策略。从而进一步提高NUMA程序的性能。
形象地说NUMA架构的好处是离CPU越近的内存,打开速度越快。这就好像你把水果放在厨房,而不是放在客厅,出现明显的卡顿和吞吐量下降。
SMP、NUMA、MPP三类架构怎么选,你踩过哪个坑
SMP Symmetric Multiprocessor 对称多处理器
SMP中所有CPU共享同一块物理存储器。通过高速互连构成高速缓存一致性程序结构,是为了解决多CPU程序下共享BUS带来的性能问题。因为主要数增多,总线竞争导致 受限。
MPP Massive Parallel Processing 海量并行处理
MPP由若干个独立的子程序,通常用于超算场景。
User Pain Point
SMP适合中小规模OLTP。但一旦上到双路以上大机,很多团队会误以为加核就能线性提高,结果遇到总线与远程访存双重瓶颈;盲目选择MPP又会导致开发复杂度暴增。
CPU常见的三大架构区别速览
SMP程序结构介绍从程序架构来看。目前商用服务器大体可分为三类,即对称多处理器结构SMP,非一致存储访问结构NUMA,还有海量并行处理结构MPP。它们的特征分别描述如下服务器数据库处理单元数据仓库并行处理最近在学习.NET并行计算技术时接触到的服务器 NUM A架构,就是典型例子。
N U M A 的真实优势与常见误区
N U M A 的优势场景:OLTP事务处理和高并发服务

