NUMA产生背景
非统一内存访问(NUMA)是一种用于多处理器的电脑内存体设计。
早期的计算机中,CPU只有一个核,从内存中读取数据,随着单核计算能力提升遇到瓶颈,CPU开始使用多个核同时工作。随着核进一步增多,内存总线成为了瓶颈。需要排队读取数据,出现了时间长、响应慢的问题。

NUMA架构
为了解决内存总线瓶颈问题,NUMA架构出现了。

核被分成了多个NUMA节点,每个NUMA节点上面有自己的内存控制器,内存分配给NUMA CPU后,解决了内存总线瓶颈,避免当多个处理器访问同一个存储器产生的性能损失来试图解决这个问题。
如果指令和数据随机放置,会导致数据获取时间变得差异巨大且不可控。通过在代码中,对于指令和数据进行CPU亲和性处理,可以使得数据和指令尽可能放在一个NUMA node中,从而减少数据的跨节点访问,解决数据读取时间差异问题并提高效率。对于涉及到分散的数据的应用(在服务器和类似于服务器的应用中很常见),NUMA可以通过一个共享的存储器提高性能至n倍,而n大约是处理器(或者分离的存储器)的个数。
当然,不是所有数据都局限于一个任务,所以多个处理器可能需要同一个数据。为了处理这种情况,NUMA系统包含了附加的软件或者硬件来移动不同存储器的数据。这个操作降低了对应于这些存储器的处理器的性能,所以总体的速度提升受制于运行任务的特点。
总的来说,NUMA(Non Uniform Memory Access)技术可以使众多服务器像单一系统那样运转,同时保留小系统便于编程和管理的优点。
–本文资料来源:【酷哥说库】什么是NUMA
百度百科
最后修改时间:2020-12-22 19:29:17
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




