[发明专利]一种内存分配方法和服务器有效
申请号: | 201710669106.4 | 申请日: | 2017-08-07 |
公开(公告)号: | CN109388490B | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 孙贝磊;沈胜宇;徐建荣 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 分配 方法 服务器 | ||
本申请实施例公开了一种内存分配方法和服务器,用于在内存分配的时候,减少NC延迟带来的性能损失,提高服务器性能。本申请实施例方法包括:服务器识别节点拓扑表,该节点拓扑表中不仅存在NUMA节点之间的连接关系,而且存在NUMA节点与NC之间,NC与NC之间的连接关系,服务器根据该节点拓扑表,生成各NUMA节点的访存跳转表,该跳转表中不仅有连接至其他各NUMA节点的最短路径中的QPI跳数,而且有NC跳数,服务器再根据各NUMA节点的访存跳转表,计算各NUMA节点的访存优先级,将NC跳数作为访存优先级计算的一个重要参数,NC跳数越少,访存优先级越高,当有NUMA节点申请内存时,根据该访存优先级表进行内存分配,优先级越高,越优先从该优先级对应的NUMA节点中分配内存。
技术领域
本申请涉及通讯领域,尤其涉及一种内存分配方法和服务器。
背景技术
受到硬件芯片技术的限制,单个处理器(Central Processing Unit,CPU)的计算能力趋于饱和。因此,为了获取更高的计算性能,服务器趋向于通过增加处理器数量的方式增加服务器的计算性能。对于高性能服务器而言,一般采用非一致性内存架构(Non-Uniform Memory Architecture,NUMA),即多个节点通过高速互联网络连接而成,每个节点由一组CPU和本地内存组成。节点访问本地内存时,访存延迟较小,性能较高;但是,如果访问远端内存,则访存延迟相对较高,会造成性能下降。为此,为了提升系统性能,当前的内存分配器在进行内存分配的时候,需要优先分配本地内存,其次再考虑远端内存。
为了减少访存时带宽的限制,英特尔Intel利用快速互联通道(Quick PassInterconnect,QPI)代替了传统的前端总线(Front Side Bus,FSB),其中,QPI是一种基于包传输的串行式高速点对点连接协议。但是,由于每个节点只提供三个QPI接口,因此导致一个服务器中的能够互联的节点数量受限。为了解决上述问题,引入了节点控制器(NodeController,NC)。NC提供了更多的节点接口(Node Interface,NI),因此可以通过NC扩大服务器内互联节点的数量,从而减少跨节点访存延迟。
当前内核中提供的针对传统NUMA内存分配的方法为:
1、在系统初始化过程中生成NUMA距离,其中:
如果是本地节点,则NUMA距离为0;
如果节点A和节点B互联,即A和B相邻,则NUMA距离为20;
如果节点A和节点C不互联,则A和C的NUMA距离等于A到C之间经过的最小跳(Hop)数乘以20。
2、根据节点拓扑分配内存,其中包括如下三种分配策略:
A、本地化(Local)策略:该策略旨增加本地内存的访问量,从而减少访存延迟,具体流程如下:
(1)、检查本地节点是否有足够的内存;
(2)、如果本地节点有足够的内存,则优先从本地节点分配内存;
(3)、如果本地节点没有足够的内存,则需要按照各个节点距离该节点的NUMA距离由小到大的顺序,依次寻找具有足够内存的节点,分配相应的内存。
B、优先(Preferred)策略:该策略会指定一系列的内存节点,在进行内存分配的时候,会首先从指定的内存节点中分配内存。如果指定的内存节点已经分配完毕,则从其他节点分配内存。
C、交织(Interleaved)策略:该策略旨在增加访存的并行性。在该策略下,系统会以轮询的方式,按照节点编号,依次从各个内存节点中分配内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710669106.4/2.html,转载请声明来源钻瓜专利网。