一种RDMA内存申请保护方法、系统、设备及存储介质技术方案

技术编号:32856319 阅读:14 留言:0更新日期:2022-03-30 19:27
本发明专利技术提出一种RDMA内存申请保护方法,包括:以预注册的方式在内存中申请多个内存块,并基于多个内存块建立内存块资源池;响应于需要将数据写入到内存中,根据数据的大小从内存块资源池中分配多个内存块存储数据。通过本发明专利技术提出的一种RDMA内存申请保护方法,将使用RDMA数据传输方式的写入数据时申请内存的方式改为预注册的方式,并且采用分批预注册的方实现对RDMA保护内存的申请,可有效降低因独占内存控制导致的系统阻塞。缓解RDMA内存使用与系统使用内存的竞争关系。提高使用RDMA链路的存储系统的稳定性。存储系统的稳定性。存储系统的稳定性。

【技术实现步骤摘要】
一种RDMA内存申请保护方法、系统、设备及存储介质


[0001]本专利技术属于互联网
,具体涉及一种RDMA内存申请保护方法、系统、设备及存储介质。

技术介绍

[0002]RDMA(Remote

Direct Memory Access)远程内存直接访问,是Mellanox、Intel等公司推出的高速网络技术,与传统网络技术相比,RDMA能够绕过操作系统协议栈、减少内存拷贝次数、避免系统态内核态切换开销,从而提供更高带宽、更低时延、占用更少的系统资源。
[0003]RDMA是一种直接访问远端计算机存储区的网络传输技术,将数据从本地系统快速拷贝到远程系统存储器中,传输过程中只占用单边CPU资源,同时绕过操作系统内核协议栈,能够显著提高数据传输性能。RDMA技术已经应用到各类业务场景,尤其是对带宽、时延要求非常高的分布式存储系统,采用RDMA网络传输大量文件数据,绕过传统网络的性能瓶颈,充分发挥出NVMe SSD、PM等新型硬件的性能。现在RDMA技术的普遍应用中,数据的传输需要依赖一个固定的内存区域存放数据,在本地端和远程端首次建立连接的过程时需要申请并注册多块内存区域以供RMDA接收命令、发送数据、接收数据。注册内存区域是比较耗时的,在实际测试中,注册100G内存耗时约3.6s。在业务处理中阻塞3.6s无疑是致命的,因为我们的系统不只有RDMA一种应用。
[0004]因此,亟需一种有效解决上述问题的RDMA解决方案。

技术实现思路

[0005]为解决以上问题,本专利技术提出一种RDMA内存申请保护方法,包括:
[0006]以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池;
[0007]响应于需要将数据写入到所述内存中,根据所述数据的大小从所述内存块资源池中分配多个内存块存储所述数据。
[0008]在本专利技术的一些实施方式中,以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池,包括:
[0009]响应于RDMA驱动初始化完成,根据所述RDMA驱动所设定的最大连接的个数,及每个连接所预定的空间大小在内存中分批建立多个内存块,并将所述多个内存块建立内存块资源池。
[0010]在本专利技术的一些实施方式中,以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池,还包括:
[0011]根据数据写入内存的速度,提前向内存中注册所述数据写入内存的速度等大的多个数据块。
[0012]在本专利技术的一些实施方式中,方法还包括:
[0013]判断所述内存块资源池的剩余空间大小及系统内存的剩余空间大小;
[0014]响应于所述内存块资源池的剩余空间大小大于所述内存块资源池的总大小的第一预定比例,且所述系统内存的剩余空间大小低于第二预定比例,将释放所述内存块资源池预定大小的内存空间。
[0015]在本专利技术的一些实施方式中,将释放所述内存块资源池预定大小的内存空间,包括:
[0016]将所述预定大小的内存空间作为故障内存空间进行释放。
[0017]在本专利技术的一些实施方式中,方法还包括:
[0018]将所述内存块资源池中的内存空间通过本地环回网络共享给所述系统调用。
[0019]在本专利技术的一些实施方式中,将所述内存块资源池中的内存空间通过本地环回网络共享给所述系统调用,包括:
[0020]在所述系统调用的所述内存块中添加标记,并将所述标记保存到所述内存块中用于标记对端存储的存储区域中。
[0021]本专利技术的另一方面还提出了一种RDMA内存申请保护系统,包括:
[0022]内存预注册模块,所述内存预注册模块配置用于以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池;
[0023]内存分配模块,所述内存分配模块配置用于响应于需要将数据写入到所述内存中,根据所述数据的大小从所述内存块资源池中分配多个内存块存储所述数据。
[0024]本专利技术的再一方面还提出了一种计算机设备,包括:
[0025]至少一个处理器;以及
[0026]存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
[0027]本专利技术的又一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
[0028]通过本专利技术提出的一种RDMA内存申请保护方法,将使用RDMA数据传输方式的写入数据时申请内存的方式改为预注册的方式,并且采用分批预注册的方实现对RDMA保护内存的申请,可有效降低因独占内存控制导致的系统阻塞。缓解RDMA内存使用与系统使用内存的竞争关系。提高使用RDMA链路的存储系统的稳定性。
附图说明
[0029]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为本专利技术实施例提供的一种RDMA内存申请保护的实施例的方法流程图;
[0031]图2为本专利技术实施例提供的一种RDMA内存申请保护系统的结构示意图;
[0032]图3为本专利技术实施例提供的一种计算机设备的结构示意图;
[0033]图4为本专利技术实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
[0034]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0035]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。
[0036]如图1所示,本专利技术的一方面还提出了一种RDMA内存申请保护方法,包括:
[0037]步骤S1、以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池;
[0038]步骤S2、响应于需要将数据写入到所述内存中,根据所述数据的大小从所述内存块资源池中分配多个内存块存储所述数据。
[0039]需要说明的是,本专利技术所提供的方法是用于与RDMA链路传输中,由于RDMA(远程内存直接访问)的技术特点,在具备RDMA的系统上,操作系统无法获取被应用于RDMA的内存空间,即当支持RDMA技术的物理网卡根据RDMA技术标准从计算机的内存空间申请一定的内存空间之后,支持RDMA技术的物理网卡所在的计算机上的操作系统无法访问被支持RDMA技术的物理网卡所申请的内存空间。即如果在该计算机的操作系统中使用free命令查看本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RDMA内存申请保护方法,其特征在于,包括:以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池;响应于需要将数据写入到所述内存中,根据所述数据的大小从所述内存块资源池中分配多个内存块存储所述数据。2.根据权利要求1所述的方法,其特征在于,所述以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池,包括:响应于RDMA驱动初始化完成,根据所述RDMA驱动所设定的最大连接的个数,及每个连接所预定的空间大小在内存中分批建立多个内存块,并将所述多个内存块建立内存块资源池。3.根据权利要求1所述的方法,其特征在于,所述以预注册的方式在内存中申请多个内存块,并基于所述多个内存块建立内存块资源池,还包括:根据数据写入内存的速度,提前向内存中注册所述数据写入内存的速度等大的多个数据块。4.根据权利要求1所述的方法,其特征在于,还包括:判断所述内存块资源池的剩余空间大小及系统内存的剩余空间大小;响应于所述内存块资源池的剩余空间大小大于所述内存块资源池的总大小的第一预定比例,且所述系统内存的剩余空间大小低于第二预定比例,将释放所述内存块资源池预定大小的内存空间。5.根据权利要求4所述的方法,其特征在于,所述将释放所述内存块资源池预定大小的内存空间,包...

【专利技术属性】
技术研发人员:张砚凯
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1