CN114296916B - 一种提高释放rdma性能的方法、装置及介质 - Google Patents

一种提高释放rdma性能的方法、装置及介质 Download PDF

Info

Publication number
CN114296916B
CN114296916B CN202111594370.9A CN202111594370A CN114296916B CN 114296916 B CN114296916 B CN 114296916B CN 202111594370 A CN202111594370 A CN 202111594370A CN 114296916 B CN114296916 B CN 114296916B
Authority
CN
China
Prior art keywords
rdma
thread
resources
threads
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111594370.9A
Other languages
English (en)
Other versions
CN114296916A (zh
Inventor
张士辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111594370.9A priority Critical patent/CN114296916B/zh
Publication of CN114296916A publication Critical patent/CN114296916A/zh
Application granted granted Critical
Publication of CN114296916B publication Critical patent/CN114296916B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种提高释放RDMA性能的方法、装置及介质,应用于存储系统技术领域,建立RDMA的通信连接;根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程;将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;获取其余线程申请QP硬件资源和CQ硬件资源的请求;下发IO任务以便其余线程执行IO任务。采用多线程,解决了单一线程达不到RDMA的限速而带来的延迟问题,将资源分配至线程池内的多线程上,使得线程资源相对独立,解决了线程资源竞争问题,实现无锁化线程池,提升RDMA的数据IO处理效率,提高释放RDMA高带宽、低延迟的性能。

Description

一种提高释放RDMA性能的方法、装置及介质
技术领域
本发明涉及存储系统技术领域,特别是涉及一种提高释放RDMA性能的方法、装置及介质。
背景技术
随着互联网、云计算、物联网、移动互联网等技术的发展,对网络的传输性能要求越来越高,其中带宽、时延具有更高的要求。因此,为了解决网络传输中客户端与服务器端数据处理的延迟而产生的远程直接内存访问(RemoteDirect Memory Access,RDMA)技术,其允许高吞吐、低延迟的网络通信,RDMA技术因其广泛应用而得以快速发展,10G、25G、40G、50G、100G、200G直到最新的400G,RDMA的发展速度远远超过了光纤通道技术(FiberChannel,FC)、串行小型计算机接口技术(Serial Attached Small Computer SystemInterface,SAS)等技术协议的发展速度,使得其在存储、高性能计算(High PerformanceComputing,HPC)得到广泛应用。
RDMA速率高速发展同时也带来新的问题,在服务器中原有的单一进程、线程任务不能达到RDMA规定的限速,则会出现输入输出(Input/Output,IO)处理缓存延迟问题,采用多线程执行任务时,资源在队列中未分配,多个线程共同使用该队列的资源,导致多个线程可能同时使用同一种资源且存在资源竞争问题,IO效率没有得到提升,同时也体现不出RDMA技术的高带宽、低延迟特征,也就使RDMA性能不能完全释放。
因此,如何提高释放RDMA的性能是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种提高释放RDMA性能的方法、装置及介质,提高释放RDMA的性能。
为解决上述技术问题,本发明提供一种提高释放RDMA性能的方法,包括:
建立RDMA的通信连接;
根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;
将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;
获取其余线程申请QP硬件资源和CQ硬件资源的请求;
下发IO任务以便其余线程执行IO任务。
优选地,建立RDMA的通信连接,包括:
根据平台参数确定FLEX层的适配结果,其中,适配结果包括RDMA的内存池容量和线程数量;
根据适配结果创建并启动资源池,其中资源池包括内存池和线程池;
启动RDMA端口并进行注册内存以便于申请线程的内存区域;
启动监听器,并在监听器监听到RDMA的请求指令时建立连接。
优选地,资源包括rport资源、connect资源和工作资源,其中,rport资源用于管理RDMA端口和QP,工作资源用于管理CQ和IO。
优选地,当工作资源管理IO时,第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程,包括:
根据RDMA的数据操作类型、数据长度选择RDMA的操作类型将IO管理分配于其余线程。
优选地,在启动RDMA端口并进行注册内存之后,还包括:
当RDMA操作内存时获取注册内存。
优选地,平台参数包括CPU的型号、内存的容量和RDMA的端口数量。
优选地,还包括:
当完成IO任务时播放提示信息。
为解决上述技术问题,本发明提供一种提高释放RDMA性能的装置,包括:
建立模块,用于建立RDMA的通信连接;
申请模块,用于根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;
放置模块,用于将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;
获取模块,用于获取其余线程申请QP硬件资源和CQ硬件资源的请求;
执行模块,用于下发IO任务以便其余线程执行IO任务。
为解决上述技术问题,本发明还提供一种提高释放RDMA性能的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述提高释放RDMA性能的方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述提高释放RDMA性能的方法的步骤。
本发明提供的一种提高释放RDMA性能的方法,建立RDMA的通信连接;根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;获取其余线程申请QP硬件资源和CQ硬件资源的请求;下发IO任务以便其余线程执行IO任务。该方法采用多线程,解决了单一线程达不到RDMA的限速而带来的延迟问题,将资源分配至线程池内的多线程上,使得线程资源相对独立,解决了线程资源竞争问题,实现无锁化线程池,提升RDMA的数据IO处理效率,提高释放RDMA高带宽、低延迟的性能。
另外,本发明还提供了一种提高释放RDMA性能的装置及介质,具有如上述提高释放RDMA性能的方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种提高释放RDMA性能的方法的流程图;
图2为本发明实施例提供的一种软件实现结构的示意图;
图3为本发明实施例提供的一种提高释放RDMA性能的方法的示意图;
图4为本发明实施例提供的一种提高释放RDMA性能的装置的结构图;
图5为本发明实施例提供的另一种提高释放RDMA性能的装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种提高释放RDMA性能的方法、装置及介质,提升RDMA的数据IO处理效率,提高释放RDMA高带宽、低延迟的性能。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,本发明提供的方法基于RDMA技术,适用于存储服务器访问内存,还适用于网络传输中客户端与服务端数据处理或远程访问内存等应用场景,允许计算机主板上的设备直接将数据发送至内存中,减少CPU的参与,根据不同的平台,不同的中央处理器(Central Processing Unit,CPU)类型则设置不同跑RDMA业务的CPU核心数。
图1为本发明实施例提供的一种提高释放RDMA性能的方法的流程图,如图1所示,该方法包括:
S11:建立RDMA的通信连接。
需要说明的是,RDMA技术有三类网络协议,其包括Infiniband、允许以太网直接访问内存的网络协议(RDMA over Converged Ethernet,ROCE)和保护协议(Internet WideArea RDMA Protocol,IWARP),RDMA为了兼容以太网,定义ROCE和IWARP两种实现,使得RDMA在传统以太网得以应用,本发明对三种网络协议都适用,不做具体要求。
建立RDMA的通信连接,其目的在于将给定的目标互联网协议地址(InternetProtocol Address,IP)地址映射到可用的RDMA地址,需要初始化其他资源,得到平台清单,清单上不同的平台对应具体的参数以及标识等,根据参数或标志打开指定的平台。根据平台参数确定适配结果以及根据适配结果创建资源池,启动端口注册以及监听器监听RDMA的请求指令。
S12:根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO。
建立通信连接后,根据连接的请求需要申请有关RDMA任务的资源和有关线程,其资源包括线程资源和有关RDMA任务的相关资源,线程资源有栈、寄存器、线程ID、全局和静态变量等,关于RDMA任务的资源包括队列对(Queue Pair,QP)、完成队列(CompletionQueue,CQ)、IO、Port管理资源以及清理删除队列、完成队列、注销内存等资源,本发明获取内存池的资源只讨论RDMA的建立连接的资源。
对于线程池,由于多次使用线程,需要多次创建并销毁线程,而创建并销毁线程的过程会消耗内存,因此,一种管理线程的线程池应运而生,线程池的好处就是方便管理线程,也可以减少内存的消耗。对于线程池中的线程数量根据任务而定,例如,执行RDMA任务,则匹配具体的线程数量存放线程池中。
对于内存池是在真正使用内存之前,先申请分配一大块内存留作备用,当申请内存时,从内存池中取出一块动态分配,释放时将释放的内存放回池内,再次申请从内存池中取出使用,若内存池容量不够时,自动扩大,从操作系统中申请更大的内存池,本发明是根据适配结果确定RDMA的内存池大小进行申请。其内存池中存放各种资源,本发明存放的资源有工作资源、connect资源和rport资源,其资源是管理RDMA任务的RDMA端口、QP、CQ和IO。
RDMA端口包括端口激活、网络配置、网络管理、保护域(Protection Domain,PD)、内存区域(Memory Region,MR)申请注册等,QP用于创建、管理、消耗RDMA的qpair,qpair是可执行RDMA任务的硬件资源。Qpair在创建时分配在一个线程上处理其任务,包括RDMAsend、RDMA write、RDMA read等。CQ用于接受处理RDMA的操作完成信号,CQ是RDMA硬件资源,在创建时分配在一个线程上轮询处理其任务,IO用于处理RDMA需要操作的数据,根据数据操作类型、数据长度等选择RDMA操作类型进行分配任务。需要说明的是,本发明只讨论关于RDMA技术的资源,内存池中的其他资源根据线程池中的线程自动分配,不做具体要求。
S13:将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程。
在上述实施例的基础上,线程池中存在多个线程,其线程数量根据平台参数确定的RDMA技术的线程数量,需要说明的是,线程数量不是固定不变的,而是根据不同平台的参数确定,根据实际情况确定。将资源放置于所申请的线程中的第一线程,其中第一线程可以是默认多线程中的第一个线程Fiber0,也可以是选择多个线程中的随意一个线程中作为管理线程。其管理线程的功能为创建、销毁和分配资源,例如,从线程池中申请了4个线程(Fiber0、Fiber1、Fiber2、Fiber3),默认放在Fiber0线程上,只是一种优选地实施例。
将资源放置于第一线程后,第一线程根据RDMA将资源分配给除第一线程的其他线程,结合上述的例子,其余线程为Fiber1、Fiber2、Fiber3这三个线程,也就是使其余线程都具有上述中的4种资源处理各自线程中的分配到的任务。每个线程都可以执行RDMA操作的任务,如RDMA send、RDMA write、RDMA read等,每个线程都有自己的内存区域,多线程间没有竞争。
S14:获取其余线程申请QP硬件资源和CQ硬件资源的请求。
其余线程根据分配到的资源去申请RDMA的硬件资源,其包括QP硬件资源和CQ硬件资源,QP是可执行RDMA任务的硬件资源,RDMA提供了基于消息队列的点对点通信,直接创建一个通道连接,当需要通信连接是,在通道连接的首尾端点为两对QP。每对QP由发送队列(Send Queue,SQ)和接收队列(Receive Queue,RQ)构成,这些队列中管理着各种类型的消息。QP会被映射到应用的虚拟地址空间,使得应用直接通过它访问RNIC网卡。除QP描述的两种基本队列之外,CQ,CQ用来知会用户工作队列(Work Queue,WQ)上的消息已经被处理完。
需要说明的是,QP有多种类型,分为可靠和不可靠,连接和非连接,需要选择正确的QP类型,对于应用程序的正确性和可拓展至关重要,当遇到不同平台时的RDMA应用的时候,应当确定选择何种类型的QP。
CQ是RDMA硬件资源,在发送到发送队列或接收队列的每个工作请求都被视为未完成的,直到相应的工作完成或再发送了其他工作请求位置,在工作请求未完成请求,指向的内存缓存区内容不确定,工作完成会指出相应的工作请求已经完成,并提供一些有关工作请求的信息,如状态,使用的操作码,大小等。完成队列CQ是包含工作完成的对象,需要轮询CQ,以读取其中完成的工作,CQ以先入先出队列(First Input First Output,FIFO)方式工作。
S15:下发IO任务以便其余线程执行IO任务。
对于RDMA技术其目的是减少CPU的参与度直接访问内存,CPU下发IO任务,进而通过线程执行IO任务进行访问内存,由于线程中第一线程作为管理线程,其余线程由于分配到的资源相互独立,避免线程竞争问题,其余线程中的每个线程都有对应的CQ链表、IO链表和QP链表,用于标记该线程需要处理的IO、CQ和QP。
本发明提供的一种提高释放RDMA性能的方法,建立RDMA的通信连接;根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;获取其余线程申请QP硬件资源和CQ硬件资源的请求;下发IO任务以便其余线程执行IO任务。该方法采用多线程,解决了单一线程达不到RDMA的限速而带来的延迟问题,将资源分配至线程池内的多线程上,使得线程资源相对独立,解决了线程资源竞争问题,实现无锁化线程池,提升RDMA的数据IO处理效率,提高释放RDMA高带宽、低延迟的性能。
在上述实施例的基础上,图1的步骤S11中建立RDMA的通信连接具体包括:
根据平台参数确定FLEX层的适配结果,其中,适配结果包括RDMA的内存池容量和线程数量;
根据适配结果创建并启动资源池,其中资源池包括内存池和线程池;
启动RDMA端口并进行注册内存以便于申请线程的内存区域;
启动监听器,并在监听器监听到RDMA的请求指令时建立连接。
需要说明的是,平台参数根据平台类型得出,其包括CPU型号、内存的大小,RDMA端口数量或者内存配置等适配RDMA使用的线程梳理,其适配结果为RDMA的内存池容量大小和线程数量,图2为本发明实施例提供的一种软件实现结构的示意图,其FLEX层用于识别当前平台、内存配置、RDMA端口数量等,根据平台CPU、内存,适配RDMA使用的线程梳理。
根据FLEX层的适配结果创建并启动资源池,其中上述提到的资源池包括内存池和线程池,内存管理(Memory manage)用于根据FLEX层适配结果创建内存池,用于RDMA多线程使用,多线程管理(Mutli thread manage)用于根据FLEX层适配结果创建线程池,并为每个线程分配任务。
启动端口并进行注册内存,其目的是申请多个线程的内存区域,在图2中的端口管理(Port manage)中进行注册内存MRRDMA设备访问的内存缓存区必须注册,其注册内存包括将连续的内存缓存区分成内存页,将虚拟内存映射到物理内存,检查内存页权限确保支持MR发出的请求权限,锁定内存页保证虚拟内存到物理内存的映射不变。
启动监听器监听是否有RDMA的请求指令并建立连接,其监听器放置在管理线程上进行监听,也就是放置在上述提到的第一线程上。
另外,图2中的QP管理、IO管理、Port管理在上述实施例中分别对应管理QP、IO、RDMA端口,在此不再赘述。本发明提到的平台参数可以是当前系统平台的参数,也可以是多个平台参数,当前系统平台参数只确定一个内存池,根据不同的平台,获取相对应不同平台的内存池,也就是执行不通过RDMA业务同时进行,本发明不做具体要求,可根据具体情况设定。
本发明实施例提到的建立RDMA的连接,为后续在多线程中执行RDMA业务奠定了基础,提高IO处理效率,保证RDMA技术性能得到释放。
在上述实施例的基础上,在步骤S12中根据通信连接在内存池中申请对应的资源,其中资源包括:
rport资源、connect资源和工作资源,其中,rport资源用于管理RDMA端口和QP,工作资源用于管理CQ和IO。
图3为本发明实施例提供的一种提高释放RDMA性能的方法的示意图,如图3所示,需要说明的是,rport资源、connect资源和工作资源放置在内存池中,rport资源,一个存储服务器有一个IP地址,其对应一个rport,进而根据rport建立connect资源,管理QP,进而通过rport管理RDMA端口,connect资源从工作资源种得到工作分配到各线程中,同时,RDMA端口在工作资源中注册MR,RDMA端口有两个,通过内存池中申请线程内存区域,获取内存缓存区,另外,对于同一个地址注册的MR不同,根据线程找到对应的地址。
在线程池中申请对应的4个线程后,工作资源将工作任务发到各线程对应的工作队列中,其中包括管理CQ和IO的资源,将管理资源线程放置一个线程上,即为图3中的线程0上,管理资源线程对其余线程1、线程2、线程3将其资源进行分配,使得其余3个线程的各自资源相互独立,每个线程有对应的CQ链表、IO链表、QP链表,其CQ和IO管理资源在上述实施例中已详细说明,在此不再赘述,其任务的内容主要为IO处理、数据处理和管理处理,对于图3中的AdminQ为管理处理,环形为在各自的线程上循环运行,其监听器在上述实施例中已详细说明,不再赘述。
本发明提供的资源包括rport资源、connect资源和工作资源,方便当有新的RDMA通信连接时,从内存池中申请对应的各种资源管理RDMA端口、QP、IO和CQ,便于后续将资源分配至其余线程,使得其余线程的各线程资源相互独立,避免线程竞争问题。
当工作资源管理IO时,第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程,包括:
根据RDMA的数据操作类型、数据长度选择RDMA的操作类型将IO管理分配于其余线程。
RDMA的数据操作类型包括两种,双端操作和单端操作,双端操作为一端进行发送操作,对端为接收操作,上层应用通过工作队列下发任务。单端操作是本端主动写入远端内存的行为,只需要通过数据交互获取对端某一片可用的内存的地址和钥匙即可。选择RDMA的操作类型还有数据长度,每次建立连接的数据长度根据不同平台或者RDMA任务的不同其长度也不同,因此,需要选择RDMA的操作类型将IO管理给配于其余线程。
本发明提供的当工作资源管理IO时,第一线程根据RDMA的数据操作类型、数据长度选择RDMA的操作类型将IO管理分配于其余线程,便于根据不同的RDMA操作类型选择不同IO管理方式,提高IO效率。
在上述实施例的基础上,在启动RDMA端口并进行注册内存之后,还包括:
当RDMA操作内存时获取注册内存。
需要说明的是,根据平台的不同,为每个端口注册一定数量的不同大小的内存池,其RDMA操作内存需要注册才能使用,必须先注册内存,何时使用何时获取注册内存,由于注册成功后,内存有两个键,一个供本地工作请求访问内存的键,另一个供远程机器通过RDMA操作来访问内存的键,由于注册时未获得RDMA操作内存,无法获知是进行本地工作的请求还是远程访问,因此需要实际操作内存时获取注册内存。
本发明提供的当RDMA操作内存时获取注册内存。提高访问内存的速度,简洁操作内存步骤,提高RDMA数据IO处理效率。
具体地,根据平台参数确定FLEX层的适配结果,其平台参数包括CPU的型号、内存的容量和RDMA的端口数量。
平台参数根据平台类型得出,其包括CPU型号、内存的大小,RDMA端口数量或者内存配置等适配RDMA使用的线程梳理,平台可以是存储服务器,也可以是相关Web页面等,其平台参数根据实际情况进行选择,针对RDMA任务需要选择平台参数中的CPU的型号、内存的容量和RDMA的端口数量就能确定FLEX层的适配结果以此建立RDMA的内存池容量和具体用到的线程数量。
本发明提供的平台参数包括CPU的型号、内存的容量和RDMA的端口数量,便于获取FLEX层的适配结果,适配RDMA使用的线程梳理,以便更好释放RDMA性能。
在上述实施例的基础上,不同的平台建立的RDMA连接不同,也就是执行不同RDMA任务的内存池容量、线程数量以及分配的资源不同,因此当执行完IO任务时需要播放提示信息以便下发下一个RDMA任务并建立新的RDMA连接。
需要说明的是,其提示信息内容不同,可以通过相关页面的设置跳转至屏幕,或者以提示声音等不做具体限定,可根据实际情况进行设定。
本发明提供的当完成IO任务时播放提示信息。提醒用户当前任务完成,方便下个RDMA任务的进行或者其他任务的进行。
上述详细描述了提高释放RDMA性能的方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的提高释放RDMA性能的装置,图4为本发明实施例提供的一种提高释放RDMA性能的装置的结构图。如图4所示,提高释放RDMA性能的装置包括:
建立模块11,用于建立RDMA的通信连接;
申请模块12,用于根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;
放置模块13,用于将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;
获取模块14,用于获取其余线程申请QP硬件资源和CQ硬件资源的请求;
执行模块15,用于下发IO任务以便其余线程执行IO任务。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
本发明提供的一种提高释放RDMA性能的装置,建立RDMA的通信连接;根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;获取其余线程申请QP硬件资源和CQ硬件资源的请求;下发IO任务以便其余线程执行IO任务。该装置采用多线程,解决了单一线程达不到RDMA的限速而带来的延迟问题,将资源分配至线程池内的多线程上,使得线程资源相对独立,解决了线程资源竞争问题,实现无锁化线程池,提升RDMA的数据IO处理效率,提高释放RDMA高带宽、低延迟的性能。
请参照图5为本发明实施例提供的另一种提高释放RDMA性能的装置的结构图,如图5所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现提高释放RDMA性能的方法的步骤。
本实施例提供的提高释放RDMA性能的装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序201,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的提高释放RDMA性能的方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于提高释放RDMA性能的方法所涉及到的数据等等。
在一些实施例中,提高释放RDMA性能的装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图5为本发明实施例提供的另一种提高释放RDMA性能的装置的结构图。图5中示出的结构并不构成对提高释放RDMA性能的装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的提高释放RDMA性能的方法。
本发明提供的一种提高释放RDMA性能的装置,建立RDMA的通信连接;根据通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,资源用于管理RDMA端口、QP、CQ和IO;将资源放置于所申请的线程中的第一线程,以便第一线程根据RDMA将资源分配于申请的线程中除第一线程以外的其余线程;获取其余线程申请QP硬件资源和CQ硬件资源的请求;下发IO任务以便其余线程执行IO任务。该装置采用多线程,解决了单一线程达不到RDMA的限速而带来的延迟问题,将资源分配至线程池内的多线程上,使得线程资源相对独立,解决了线程资源竞争问题,实现无锁化线程池,提升RDMA的数据IO处理效率,提高释放RDMA高带宽、低延迟的性能。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述提高释放RDMA性能的方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述提高释放RDMA性能的方法相同的有益效果。
以上对本发明所提供的一种提高释放RDMA性能的方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种提高释放RDMA性能的方法,其特征在于,包括:
建立所述RDMA的通信连接;
根据所述通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,所述资源用于管理RDMA端口、QP、CQ和IO;
将所述资源放置于所申请的线程中的第一线程,以便所述第一线程根据所述RDMA将所述资源分配于申请的线程中除所述第一线程以外的其余线程,其中,所述第一线程作为管理线程,所述管理线程的功能为创建、销毁和分配资源;
获取所述其余线程申请QP硬件资源和CQ硬件资源的请求;
下发IO任务以便所述其余线程执行所述IO任务。
2.根据权利要求1所述的提高释放RDMA性能的方法,其特征在于,所述建立所述RDMA的通信连接,包括:
根据平台参数确定FLEX层的适配结果,其中,所述适配结果包括所述RDMA的内存池容量和线程数量,所述FLEX层用于识别当前平台、内存配置、所述RDMA的端口数量;
根据所述适配结果创建并启动资源池,其中所述资源池包括所述内存池和所述线程池;
启动所述RDMA端口并进行注册内存以便于申请所述线程的内存区域;
启动监听器,并在所述监听器监听到所述RDMA的请求指令时建立连接。
3.根据权利要求1所述的提高释放RDMA性能的方法,其特征在于,所述资源包括rport资源、connect资源和工作资源,其中,所述rport资源用于管理所述RDMA端口和所述QP,所述工作资源用于管理所述CQ和所述IO。
4.根据权利要求3所述的提高释放RDMA性能的方法,其特征在于,当所述工作资源管理所述IO时,所述第一线程根据所述RDMA将所述资源分配于申请的线程中除所述第一线程以外的其余线程,包括:
根据所述RDMA的数据操作类型、数据长度选择所述RDMA的操作类型将IO管理分配于所述其余线程。
5.根据权利要求2所述的提高释放RDMA性能的方法,其特征在于,在所述启动所述RDMA端口并进行注册内存之后,还包括:
当所述RDMA操作内存时获取所述注册内存。
6.根据权利要求2所述的提高释放RDMA性能的方法,其特征在于,所述平台参数包括CPU的型号、所述内存的容量和所述RDMA的端口数量。
7.根据权利要求1所述的提高释放RDMA性能的方法,其特征在于,还包括:
当完成所述IO任务时播放提示信息。
8.一种提高释放RDMA性能的装置,其特征在于,包括:
建立模块,用于建立所述RDMA的通信连接;
申请模块,用于根据所述通信连接在内存池中申请对应的资源和在线程池中申请对应的线程,其中,所述资源用于管理RDMA端口、QP、CQ和IO;
放置模块,用于将所述资源放置于所申请的线程中的第一线程,以便所述第一线程根据所述RDMA将所述资源分配于申请的线程中除所述第一线程以外的其余线程,其中,所述第一线程作为管理线程,所述管理线程的功能为创建、销毁和分配资源;
获取模块,用于获取所述其余线程申请QP硬件资源和CQ硬件资源的请求;
执行模块,用于下发IO任务以便所述其余线程执行所述IO任务。
9.一种提高释放RDMA性能的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的提高释放RDMA性能的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的提高释放RDMA性能的方法的步骤。
CN202111594370.9A 2021-12-23 2021-12-23 一种提高释放rdma性能的方法、装置及介质 Active CN114296916B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111594370.9A CN114296916B (zh) 2021-12-23 2021-12-23 一种提高释放rdma性能的方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111594370.9A CN114296916B (zh) 2021-12-23 2021-12-23 一种提高释放rdma性能的方法、装置及介质

Publications (2)

Publication Number Publication Date
CN114296916A CN114296916A (zh) 2022-04-08
CN114296916B true CN114296916B (zh) 2024-01-12

Family

ID=80970074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111594370.9A Active CN114296916B (zh) 2021-12-23 2021-12-23 一种提高释放rdma性能的方法、装置及介质

Country Status (1)

Country Link
CN (1) CN114296916B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827234B (zh) * 2022-04-29 2024-09-06 广东浪潮智慧计算技术有限公司 一种数据传输方法、系统、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373434A (zh) * 2015-12-16 2016-03-02 上海携程商务有限公司 资源管理系统及方法
CN109408243A (zh) * 2018-11-13 2019-03-01 郑州云海信息技术有限公司 一种基于rdma的数据处理方法、装置和介质
CN109921895A (zh) * 2019-02-26 2019-06-21 成都国科微电子有限公司 一种数据Hash值的计算方法及系统
CN112291293A (zh) * 2019-07-27 2021-01-29 华为技术有限公司 任务处理方法、相关设备及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373434A (zh) * 2015-12-16 2016-03-02 上海携程商务有限公司 资源管理系统及方法
CN109408243A (zh) * 2018-11-13 2019-03-01 郑州云海信息技术有限公司 一种基于rdma的数据处理方法、装置和介质
CN109921895A (zh) * 2019-02-26 2019-06-21 成都国科微电子有限公司 一种数据Hash值的计算方法及系统
CN112291293A (zh) * 2019-07-27 2021-01-29 华为技术有限公司 任务处理方法、相关设备及计算机存储介质

Also Published As

Publication number Publication date
CN114296916A (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
WO2018035856A1 (zh) 实现硬件加速处理的方法、设备和系统
US8131814B1 (en) Dynamic pinning remote direct memory access
Huang et al. High-performance design of hbase with rdma over infiniband
WO2019205371A1 (zh) 服务器、消息分配的方法及存储介质
CN109729106B (zh) 处理计算任务的方法、系统和计算机程序产品
JP2018525761A (ja) スケーラブルなリアルタイムメッセージングシステム
CN109726005B (zh) 用于管理资源的方法、服务器系统和计算机可读介质
US20040221294A1 (en) Method and system for optimizing file table usage
WO2013082809A1 (zh) 协处理加速方法、装置及系统
US10673983B2 (en) Processing a unit of work
WO2022143714A1 (zh) 服务器系统、虚拟机创建方法及装置
CN109857545A (zh) 一种数据传输方法及装置
CN114296916B (zh) 一种提高释放rdma性能的方法、装置及介质
US9697047B2 (en) Cooperation of hoarding memory allocators in a multi-process system
WO2022223003A1 (zh) 一种文件访问方法、网卡以及计算设备
WO2017166997A1 (zh) 智能网卡侧的异常处理方法和装置
CN117370046A (zh) 进程间通信方法、系统、设备和存储介质
US20160197849A1 (en) Method and Apparatus for Implementing a Messaging Interface
US20170063972A1 (en) System and method for avoiding proxy connection latency
KR20170116941A (ko) 현재 확인 메시지에서 다음 rdma 동작을 위한 타겟 버퍼 어드레스의 피기배킹 시스템 및 방법
US9088569B2 (en) Managing access to a shared resource using client access credentials
CN116107774A (zh) Io请求处理方法、装置、电子设备和存储介质
JP2020526817A (ja) クライアントサーバシステムにおいてウェブ通知を管理する技術
CN115412500A (zh) 支持负载均衡策略的异步通信方法、系统、介质及设备
CN114146406A (zh) 运算资源分配的方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant