基于RDMA的内存使用方法、系统、电子设备和存储介质技术方案

技术编号:35941343 阅读:21 留言:0更新日期:2022-12-14 10:30
本申请涉及一种基于RDMA的内存使用方法、系统、电子设备和存储介质。该方法包括:第一RDMA设备接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址;第一RDMA设备通信连接于本端计算机设备;第一RDMA设备从物理地址池中获取目标物理地址;物理地址池是本端计算机设备预先在第一RDMA设备中建立的;物理地址池中的物理地址用于指向本端计算机设备的内存中的物理页面;第一RDMA设备将目标数据写入目标物理地址所指向的目标物理页面中,并向本端计算机设备的内存中写入命令完成信息;其中,命令完成信息用于指示本端计算机设备将目标物理地址与虚拟地址绑定,以锁定目标物理页面。采用本方法能提高内存空间利用率。面。采用本方法能提高内存空间利用率。面。采用本方法能提高内存空间利用率。

【技术实现步骤摘要】
基于RDMA的内存使用方法、系统、电子设备和存储介质


[0001]本申请涉及网络通信
,特别是涉及一种基于RDMA的内存使用方法、系统、电子设备和存储介质。

技术介绍

[0002]RDMA(Remote Direct Memory Access,远程直接内存访问)技术,是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA设备通过网络将数据直接传入计算机的存储区,实现了将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成影响,无需用到计算机的较多处理功能。
[0003]在进行RDMA通信时,一端的计算机设备需要在内存中提前注册内存区域,以供对端RDMA设备使用,这就需要提前申请并且锁定(即,pin住)内存区域,即,将内存中的物理页面分配出来以供存储对端RDMA设备发送来的数据。然而,提前申请并锁定的内存区域可能会占用较大的物理内存空间,而对端RDMA设备在实际通信中可能并没有访问被锁定的所有的物理内存空间,因此容易造成物理内存空间的浪费。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高内存空间利用率的基于RDMA的内存使用方法、系统、电子设备、计算机可读存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种基于RDMA的内存使用方法。所述方法包括:
[0006]第一RDMA设备接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址;所述虚拟地址属于本端计算机设备预先为所述第二RDMA设备注册的内存区域对应的虚拟地址范围内;所述第一RDMA设备通信连接于本端计算机设备;
[0007]所述第一RDMA设备从物理地址池中获取目标物理地址;所述物理地址池是所述本端计算机设备预先在所述第一RDMA设备中建立的;所述物理地址池中的物理地址用于指向本端计算机设备的内存中的物理页面;
[0008]所述第一RDMA设备将所述目标数据写入所述目标物理地址所指向的目标物理页面中,并向所述本端计算机设备的内存中写入命令完成信息;
[0009]其中,所述命令完成信息用于指示所述本端计算机设备将所述目标物理地址与所述虚拟地址绑定,以锁定所述目标物理页面。
[0010]第二方面,本申请还提供了一种基于RDMA的内存使用系统。所述系统包括:包括第一RDMA设备和本端计算机设备;所述第一RDMA设备通信连接于本端计算机设备;其中:
[0011]所述第一RDMA设备,用于接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址;所述虚拟地址属于本端计算机设备预先为所述第二RDMA设备注册的内存区域对应的虚拟地址范围内;
[0012]所述第一RDMA设备,还用于从物理地址池中获取目标物理地址;所述物理地址池
是所述本端计算机设备预先在所述第一RDMA设备中建立的;所述物理地址池中的物理地址用于指向本端计算机设备的内存中的物理页面;
[0013]所述第一RDMA设备,还用于将所述目标数据写入所述目标物理地址所指向的目标物理页面中,并向所述本端计算机设备的内存中写入命令完成信息;所述本端计算机设备,用于响应于所述命令完成信息将所述目标物理地址与所述虚拟地址绑定,以锁定所述目标物理页面。
[0014]在其中一个实施例中,所述本端计算机设备还用于预先为所述第二RDMA设备进行内存区域注册,得到为所述第二RDMA设备注册的内存区域对应的虚拟地址范围;在物理缓冲区列表中对应于所述虚拟地址范围内的各个虚拟地址记录未锁定内存的信息。
[0015]在其中一个实施例中,所述本端计算机设备还用于在读取到所述命令完成信息的情况下,在物理缓冲区列表中记录所述目标物理地址与所述虚拟地址的绑定关系,以锁定所述目标物理页面。
[0016]在其中一个实施例中,若所述虚拟地址已在所述本端计算机设备的操作系统中绑定有物理地址,则所述本端计算机设备还用于在读取到所述命令完成信息的情况下,将所述目标物理页面中的目标数据复制至所述虚拟地址已绑定的物理地址所指向的物理页面中。
[0017]在其中一个实施例中,所述报文是RDMA SEND报文;所述本端计算机设备还用于根据属于所述虚拟地址范围内的虚拟地址,生成第一工作队列元素,并将所述第一工作队列元素写入接收队列中;所述第一工作队列元素,用于指示所述第一RDMA设备接收所述第二RDMA设备发送的报文;
[0018]所述第一RDMA设备接收并解析对端的第二RDMA设备发送的RDMA SEND报文,获得待写入的目标数据;解析所述第一工作队列元素得到所述虚拟地址。
[0019]在其中一个实施例中,所述报文是写操作的报文;所述第一RDMA设备还用于接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址;从所述写操作的报文中获取所述虚拟地址。
[0020]在其中一个实施例中,所述报文是读响应报文;所述本端计算机设备还用于根据属于所述虚拟地址范围内的虚拟地址,生成第二工作队列元素,并将所述第二工作队列元素写入发送队列中;所述第二工作队列元素,用于指示所述第一RDMA设备主动向所述第二RDMA设备请求从对端计算机设备的内存中读取数据;
[0021]所述第一RDMA设备还用于从所述发送队列中读取所述第二工作队列元素并解析,得到所述虚拟地址,并向所述第二RDMA设备发送数据读取请求;接收并解析对端的第二RDMA设备响应于所述数据读取请求返回的读响应报文,获得待写入的目标数据;读取从所述第二工作队列元素中解析得到的所述虚拟地址。
[0022]第三方面,本申请还提供了一种电子设备。所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例所述的基于RDMA的内存使用方法中的步骤。
[0023]第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的基于RDMA的内存使用方法中的步骤。
[0024]第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的基于RDMA的内存使用方法中的步骤。
[0025]上述基于RDMA的内存使用方法、系统、电子设备、存储介质和计算机程序产品,第一RDMA设备接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址,从物理地址池中获取目标物理地址,将目标数据写入目标物理地址所指向的目标物理页面中,并向本端计算机设备的内存中写入命令完成信息,本端计算机设备在读取到命令完成信息的情况下将目标物理地址与虚拟地址绑定,以锁定目标物理页面,从而本端计算机设备无需预先为对端的第二RDMA设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RDMA的内存使用方法,其特征在于,所述方法包括:第一RDMA设备接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址;所述虚拟地址属于本端计算机设备预先为所述第二RDMA设备注册的内存区域对应的虚拟地址范围内;所述第一RDMA设备通信连接于本端计算机设备;所述第一RDMA设备从物理地址池中获取目标物理地址;所述物理地址池是所述本端计算机设备预先在所述第一RDMA设备中建立的;所述物理地址池中的物理地址用于指向本端计算机设备的内存中的物理页面;所述第一RDMA设备将所述目标数据写入所述目标物理地址所指向的目标物理页面中,并向所述本端计算机设备的内存中写入命令完成信息;其中,所述命令完成信息用于指示所述本端计算机设备将所述目标物理地址与所述虚拟地址绑定,以锁定所述目标物理页面。2.根据权利要求1所述的方法,其特征在于,在所述第一RDMA设备接收并解析对端的第二RDMA设备发送的报文之前,所述方法还包括:所述本端计算机设备预先为所述第二RDMA设备进行内存区域注册,得到为所述第二RDMA设备注册的内存区域对应的虚拟地址范围;所述本端计算机设备在物理缓冲区列表中对应于所述虚拟地址范围内的各个虚拟地址记录未锁定内存的信息。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述本端计算机设备在读取到所述命令完成信息的情况下,在物理缓冲区列表中记录所述目标物理地址与所述虚拟地址的绑定关系,以锁定所述目标物理页面。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述虚拟地址已在所述本端计算机设备的操作系统中绑定有物理地址,则所述本端计算机设备在读取到所述命令完成信息的情况下,将所述目标物理页面中的目标数据复制至所述虚拟地址已绑定的物理地址所指向的物理页面中。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述报文是RDMA SEND报文;在所述第一RDMA设备接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址之前,所述方法还包括:所述本端计算机设备根据属于所述虚拟地址范围内的虚拟地址,生成第一工作队列元素,并将所述第一工作队列元素写入接收队列中;所述第一工作队列元素,用于指示所述第一RDMA设备接收所述第二RDMA设备发送的报文;所述第一RDMA设备接收并解析对端的第二RDMA设备发送的报文,获得待写入的目标数据,确定所述目标数据待写入至的虚拟地址包括:所述第一RDMA设备接收并解析对端的第二RDMA设备发送的RDMA SEND报文,获得待写入的目标数据;所述第一RDMA设备解析所述第一工作队列元素得到所述虚拟地址。6.根据权利要求1至4中任一项所述的方法,其特征在于,所述报文是写操作的报文;所述第一RDMA设备接收并解析...

【专利技术属性】
技术研发人员:黄勇平王熙
申请(专利权)人:深圳云豹智能有限公司
类型:发明
国别省市:

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

1