numa与uma的差别 (NUMA与UEFI)

文章编号:8955 更新时间:2024-01-05 分类:互联网资讯 阅读次数:

资讯内容

无论我们愿意或者知晓,云服务已经无所不在,打车、订票、玩游戏、逛淘宝等等便利都离不开它。云服务依托于强劲的服务器集群,强劲的市场需求使其对服务器性能要求的不断提高。服务器早以从SMP(对称多处理器)体系进化到了NUMA(Non-UniformMemoryAccessArchitecture)体系。本文从NUMA的历史、原理和与UEFI固件的关系来深入了解它。

numa与uma的差别NUMA与UEFI

NUMA的历史

Intel的联合创始人摩尔在1965年就发现了摩尔定律,即集成电路每英寸晶体管数目每过18个月增加一倍。从那以后芯片产业仿佛被施加了魔咒,从此在增加晶体管数目的不归路上一路狂奔至今,于此同时主频也不断提高,整体效能在2004年之前年增长率达到52%。

在1999年计算机主频超过1G大关后,芯片厂商们继续向着更高的目标前进,10GHz似乎并不遥远。励志故事在2004年戛然而止,Intel和AMD在主频战争中先后碰上了散热问题。超长的流水线、巨大的散热片和高达百瓦的功耗为频率战划下了句号,芯片厂商决定另辟蹊径:从攀高峰变成摊大饼。摩尔定律继续发挥作用,越来越多的内核被加入到了CPU中,从此年增长率降为了22%,而Intel也从此不再提起频率,而改为每瓦性能了。这个改变极大的影响了软件的性能优化的考量,从此单核性能优先渐渐让位于多核性能协调。而落后的FSB(前端总线)架构极大的影响了系统性能的发挥,多核常常争抢总线资源用以访问在北桥上的内存,造成很大的延迟。在服务器芯片领域,由于多个CPU共享FSB,情况尤为严重。

需求带来了变革,AMD和Intel先后将内存控制器移入CPU内部,CPU之间用芯片互联总线连接,分别起名HyperTransport和QPI。我们的主题NUMA也在这里粉墨登场了。

根据CPU访问内存中地址所需时间和距离,我们可以将CPU和内存结构分为SMP(SymmetricMulti-Processor,也称之为一致内存访问UMA)、NUMA(Non-UniformMemoryAccessArchitecture,非一致性内存访问)和MPP(MassiveParallelProcessing,不在本文范围内)。

右边的UMA方式即是传统的通过FSP访问北桥的内存方式,各个CPU和所有的内存的访问延迟是一致的。而左边的NUMA图中,CPU0访问memory1/2的延迟小于访问memory3/4,毕竟QPI和CPU1的二传手角色是要消耗时间的。我们这里可以将CPU0和memory1/2作为一个节点(Node),而CPU1和memory3/4构成Node2。一个更复杂点的4个node的4路服务器如下图:

NUMA将CPU和相近的内存配对组成节点(node),在每个NUMA节点里,CPU都有本地内存,访问距离短(也叫亲缘性好),性能也相对好。固件将收集到的Node信息报告给操作系统,由其在分配任务和内存时就近分配,选择亲缘性好的匹配,从而提高性能。微软从WindowsNT开始就已经支持NUMA,不过是为了IBM服务器,随着X86服务器越来越主流,Window2008server已经加入了对NUMA的支持。Linux在服务器平台上的表现也越来越成熟,Linux内核对NUMA架构的支持越来越完善,特别是从2.5开始,Linux在调度器、存储管理、用户级API等方面进行了大量的NUMA优化工作,目前这部分工作还在不断地改进。对虚拟机来说NUMA也十分重要,从WindowsServer2012开始,Hyper-V虚机可以映射虚拟的NUMA拓扑,在虚机配置了较多内存的时候,使用NUMA拓扑映射能保证分配给虚机的CPU只访问本地的内存,从而达到提升性能。Hyper-V为虚机提供虚拟NUMA节点,虚拟NUMA的拓扑结构及原理与物理机的NUMA拓扑及结构一致,虚拟CPU和虚机内存组合成虚拟NUMA节点,每个虚机的虚拟NUMA节点都映射到相关的物理CPU上。

UEFI与NUMA

固件在NUMA的生态链中扮演了至关重要的地位,只有固件才能知道具体平台上CPU和内存的亲缘关系...

标签: 服务器电脑硬件UEFI

本文地址: https://yihaiquanyi.com/article/ddd2fb90ab9eaf536345.html

上一篇:取消路由的命令终止路由计算机终止体系三...
下一篇:uefihii配置UEFI与配件初始化...

发表评论