CN114584492A - 一种延时测量方法、系统以及相关设备 - Google Patents
一种延时测量方法、系统以及相关设备 Download PDFInfo
- Publication number
- CN114584492A CN114584492A CN202210138981.0A CN202210138981A CN114584492A CN 114584492 A CN114584492 A CN 114584492A CN 202210138981 A CN202210138981 A CN 202210138981A CN 114584492 A CN114584492 A CN 114584492A
- Authority
- CN
- China
- Prior art keywords
- time
- cqe
- delay
- sending
- receiving end
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种延时测量方法、系统以及相关设备,通过发送端获取应用程序向网络适配器发送门铃信号的时间T1,然后根据工作队列元素WQE向接收端发送一个或多个报文,并接收接收端发送的响应报文,并在接收到最后一个响应报文后,生成发送端的完成队列条目CQE,CQE中携带了所述时间T1和时间T2,时间T2是CQE的生成时间,最后,根据CQE携带的时间T1和时间T2确定第一延时,其中,第一延时用于反映发送端的硬件延时。这样,通过CQ就能获取到RDMA硬件延时,无需额外的硬件等设备,节省了成本。
Description
技术领域
本发明涉及存储领域,尤其涉及一种延时测量方法、系统以及相关设备。
背景技术
远程直接数据存取(Remote Direct Memory Access,RDMA)是一种本端服务器访问远端服务器的数据,而不经过本端服务器和对端服务器操作系统的技术。为了检测RDMA的工作性能,需要测量服务器使用RDMA进行数据传输的延时,即RDMA硬件延时。
但是,目前测量RDMA硬件延时需要通过额外的仪器连接网络适配器,增加了额外的硬件成本。并且,无法在服务器线上运行时进行RDMA硬件延时测量,使得无法对RDMA性能进行评估,进而无法对RDMA工作进行调优,影响数据传输效率。
因此,测量RDMA硬件延时需要额外硬件成本成为亟待解决的问题。
发明内容
本申请提供了一种延时测量方法、系统以及相关设备,通过CQ就能获取到发送端的RDMA硬件延时,并且还能衡量接收端的RDMA性能,无需额外的硬件等设备,节省了成本。
第一方面,提供一种延时测量系统,包括:发送端和接收端,发送端,用于记录应用程序向网络适配器发送门铃信号的时间T1,门铃信号用于指示发送端开始向接收端进行远程直接数据存取RDMA的数据传输;发送端,还用于根据工作队列元素WQE向接收端发送一个或多个报文,WQE用于指示发送端与接收端进行RDMA数据传输;接收端,用于根据发送端发送的一个或多个报文,向发送端发送响应报文;发送端,还用于在接收到最后一个响应报文后,生成发送端的完成队列条目CQE,发送端的CQE中携带了时间T1和时间T2,时间T2是发送端的CQE的生成时间;发送端,还用于根据发送端的CQE携带时间T1和时间T2确定第一延时,第一延时用于反映发送端的硬件延时。
这样,通过在CQE中携带门铃信号的时间以及CQE的生成时间,使得发送端能确定第一延时,该第一延时表示发送端完成一个WQE所花费时间。这样,通过CQ就能获取到RDMA硬件延时,无需额外的硬件等设备,节省了成本。
结合第一方面,在一些实现方式中,发送端,具体用于根据WQE向接收端发送一个或多个报文,并在最后一个报文中携带最后一个报文的发送时间T3和时间T1,以使接收端根据时间T3和时间T1确定第二延时,第二延时用于反映发送端与接收端的硬件延时。
门铃信号时间T1和发送端发送WQE最后一个报文的时间T3只在一个WQE的最后一个报文中携带,节省了通道开销。
结合第一方面,在一些实现方式中,接收端,还用于记录接收到一个或多个报文中最后一个报文的时间T4;接收端,还用于对一个或多个报文进行处理,并获取接收端生成CQE或事件队列条目EQE的时间T5,接收端生成的CQE或所述EQE用于指示最后一个报文处理完成;接收端,还用于根据时间T1、时间T3、时间T4以及时间T5确定第二延时。
这样,通过CQE或者EQE携带门铃信号时间以及发送端发送每个WQE的最后一个报文的时间等时间,确定第二延时,该第二延时表示了接收端接收一个WQE所有报文花费的时间和对端网络适配器处理一个WQE所有报文花费的时间,该第二延时能衡量发送端和接收端的性能。
结合第一方面,在一些实现方式中,当发送端与接收端之间为RDMA单边操作时,接收端还用于生成EQE,EQE中携带时间T1、时间T3、时间T4以及时间T5;或者,当发送端与接收端之间为RDMA双边操作时,接收端还用于生成CQE,CQE中携带时间T1、时间T3、时间T4以及时间T5。
在双边操作的情况下,接收端会生成CQE,相应的时间是通过CQE上报的;在单边操作情况下,接收端不会生成CQE,因此,是通过EQE来上传相关时间。这样,无需额外的硬件等设备就能获取第二延时,节省了成本。
第二方面,本申请提供了一种延时测量方法,应用于包括发送端和接收端的延时测量系统中的发送端,包括:获取应用程序向网络适配器发送门铃信号的时间T1,门铃信号用于指示发送端开始向接收端进行远程直接数据存取RDMA的数据传输;根据工作队列元素WQE向接收端发送一个或多个报文,WQE用于指示发送端与接收端进行RDMA数据传输;接收接收端发送的响应报文,并在接收到最后一个响应报文后,生成发送端的完成队列条目CQE,CQE中携带了时间T1和时间T2,时间T2是发送端的CQE的生成时间;根据CQE携带的时间T1和时间T2确定第一延时,第一延时用于反映发送端的硬件延时。
结合第二方面,在一些实现方式中,根据工作队列元素WQE向接收端发送一个或多个报文,包括:根据WQE向接收端发送一个或多个报文,并在最后一个报文中携带最后一个报文的发送时间T3和时间T1,以使接收端根据时间T3和时间T1确定第二延时,第二延时用于反映发送端和所述接收端的硬件延时。
结合第二方面,在一些实现方式中,发送端还可以作为接收端,接收其他设备发送的报文,回复响应报文。并记录接收到一个或多个报文中最后一个报文的时间T4,获取生成CQE或事件队列条目EQE的时间T5,以及根据时间T1、时间T3、时间T4以及时间T5确定第二延时。
第三方面,本申请提供了一种延时测量方法,应用于包括发送端和接收端的延时测量系统中的接收端,包括:获取发送端发送的一个或多个报文,并记录接收到一个或多个报文中最后一个报文的时间T4,所述最后一个报文中携带最后一个报文的发送时间T3和时间T1,时间T1为应用程序向网络适配器发送门铃信号的时间,时间T3为发送端向接收端发送最后一个报文的时间;对所述一个或多个报文进行处理,并获取接收端生成CQE或事件队列条目EQE的时间T5,所述接收端生成的CQE或所述EQE指示所述最后一个报文处理完成;根据时间T1、时间T3、时间T4以及时间T5确定第二延时。
结合第三方面,在一些实现方式中,当发送端与接收端之间为RDMA单边操作时,获取所述接收端生成CQE或事件队列条目EQE的时间T5:包括:生成EQE,EQE中携带时间T1、时间T3、时间T4以及时间T5;或者,当发送端与接收端之间为RDMA双边操作时,获取所述接收端生成CQE或事件队列条目EQE的时间T5:包括:生成接收端的CQE,CQE中携带时间T1、时间T3、时间T4以及时间T5。
结合第三方面,在一些实现方式中,接收端也可以作为发送端,获取应用程序向网络适配器发送门铃信号的时间T1,向其他设备发送一个或多个报文,接收接收端发送的响应报文,并在接收到最后一个响应报文后,生成发送端CQE,并根据CQE携带的时间T1和时间T2确定第一延时。
第四方面,本申请提供了一种计算设备,其特征在于,包括处理器和存储器,存储器用于存储指令,处理器用于执行指令,当处理器执行该指令时,执行如第二方面或第三方面所描述的方法。
第五方面,本申请提供一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有指令,当指令在计算设备上运行时,执行如第二方面或第三方面所描述的方法。
第六方面,本申请提供了一种计算机程序产品,其特征在于,计算机程序产品包括计算机指令,在被计算设备执行时,计算设备执行如第二方面或第三方面所描述的方法。
综上所述,本申请提供的一种延时测量方法、系统以及相关设备,通过在CQE中携带门铃信号时间T1以及CQE的生成时间T3,能确定第一延时,该第一延时表示RDMA完成一个WQE所花费时间。这样,通过CQ就能获取到发送端硬件延时,无需额外的硬件等设备,节省了成本。另外,接收端还能通过CQE或者EQE携带门铃信号时间以及发送端发送每个WQE的最后一个报文的时间等时间,确定第二延时,该第二延时表示了接收端接收一个WQE所有报文花费的时间和处理一个WQE所有报文花费的时间,该第二延时能衡量发送端和接收端性能。并且,时间T1和时间T3只在一个WQE的最后一个报文中携带,节省了通道开销。第二延时也是通过接收端的业务通道上传的,也无需额外的硬件等设备,节省了成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种RDMA系统架构示意图;
图2是本申请实施例提供的一种RDMA双边操作的结构示意图;
图3是本申请实施例提供的一种RDMA单边操作的结构示意图;
图4是本申请实施例提供的一种延时测量方法的流程示意图;
图5是本申请实施例提供的另一种延时测量方法的流程示意图;
图6是本申请实施例提供的一种延时测量装置的结构示意图;
图7是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
首先,对本申请实施例涉及的RDMA技术进行介绍。
RDMA是指本端服务器访问远端服务器的数据,而不经过本端服务器和对端服务器操作系统的技术。也即是说,服务器的操作系统不进行数据的封装等操作,而由网络适配器的处理器完成数据的封装。这样,能节省服务器的中央处理器(Central Processing Unit/Processor,CPU)资源。
RDMA的传输模式包括双边操作和单边操作。发送(send)属于双边操作,读/写(read/write)属于单边操作。双边操作需要双方服务器的应用程序都参与,才能完成收发,单边操作只需要本端服务器明确数据的源和目的地址,对端服务器的应用程序不必感知此次通信,由对端服务器的网络适配器参与数据的读取或写入就行。
下面结合图1所示的RDMA系统架构,对RDMA的工作过程进行举例说明。如图1所示,以服务器100向服务器200发送数据为例进行说明。其中,服务器100也可称为发送端,服务器200也可称为接收端。
应用程序101以门铃信号(Door Bell)作为通知信号,告知网络适配器103开始进行数据传递。网络适配器103将从应用程序101对应的内存读取数据,然后通过网络发送给网络适配器203,而该过程不经过操作系统102。网络适配器203接收到数据后,通过应用程序201将数据写入服务器200的内存,而不经过操作系统202。同样地,服务器200和服务器100的结构对应相同,服务器200处理请求的过程也和服务器100一致。
下面对RDMA工作时的队列进行介绍。
RDMA支持三种队列,包括发送队列(send queue,SQ)、接收队列(receive queue,RQ)和完成队列(completion queue,CQ)。SQ和RQ也可统称工作队列(workqueue,WQ),SQ和RQ通常成对创建,被称为队列对(Queue Pairs,QP)。其中,SQ和RQ承载多个工作队列元素(work queue element,WQE),SQ和RQ承载的WQE是一一对应的。以RDMA写数据为例,发送方服务器的SQ承载的WQE描述了待发送的数据信息,接收方服务器的RQ承载的WQE描述了接收到的数据被存放的位置;CQ承载了完成队列条目(completion queue entry,CQE),用于网络适配器告知应用程序消息传递完毕。
当RDMA的传输模式为双边操作时,本端服务器和对端服务器都将建立WQ和CQ,其中,WQ包括发送队列(SQ)和接收队列(RQ)。本端服务器建立的SQ和对端服务器建立的RQ中的WQE是一一对应的,本端服务器建立的RQ和对端服务器建立的SQ中的WQE是一一对应的。
如图2所示,以服务器100向服务器200发送数据为例,应用程序101先生成发送数据的工作请求(work request,WR),并通过网络适配器103提供的程序将WR转换为WQE,将WQE下发到网络适配器103的SQ中。同样地,网络适配器203的RQ中也将生成对应WQE。应理解,网络适配器103和网络适配器203中都已经生成了对应的WQE后,才能进行RDMA数据传输,具体可以是网络适配器103先生成WQE,也可以是网络适配器203先生成WQE,本申请对网络适配器103和网络适配器203生成WQE的顺序不作具体限定。当应用程序101的WR下发完成后,将向网络适配器103发送门铃信号,网络适配器103的处理器1031就将不断从SQ中读取WQE并执行。在执行一个WQE过程中,网络适配器103会向网络适配器203发送一个或多个报文,在网络适配器203接收并由网络适配器处理器2031处理这个WQE的最后一个报文后,网络适配器203中的WQE将被消耗掉,对应将生成一个CQE。并且,网络适配器203接收到报文并处理报文后,将向网络适配器103回复响应报文,包括确认信号(Acknowledgement,ACK)。当网络适配器103接收到WQE的最后一个ACK后,网络适配器103中的该WQE将被消耗,并在CQ中生成一个对应的CQE。一个CQE还对应会生成一个工作完成信号(workcomplete,WC),用于向应用程序101或应用程序201上报工作完成。
当RDMA的传输模式为单边操作时,本端服务器和对端服务器都将建立WQ和CQ,但是,只有本端服务器使用WQ和CQ。也即是说,在进行RDMA数据传输时,本端服务器和对端服务器都会建立WQ和CQ。当传输模式为双边操作时,会使用双方的WQ和CQ;当传输模式为单边操作时,只使用本端服务器的WQ和CQ。
如图3所示,以服务器100向服务器200写数据为例,应用程序101先生成WR,并通过网络适配器103提供的程序将WR转换为WQE,将WQE下发到网络适配器103的SQ中。当应用程序101的WR下发完成后,将向网络适配器103发送门铃信号,网络适配器103的处理器1031就将不断从SQ中读取WQE并执行。网络适配器103会向网络适配器203发送一个或多个报文,用于直接将数据写入服务器200的内存。网络适配器203还会向网络适配器103回复ACK,并且网络适配器处理器2031将在事件队列(event queue,EQ)中生成对应的事件队列元素(eventqueue element,EQE)。当网络适配器103接收到最后一个ACK后,网络适配器103中的WQE将被消耗,并在CQ中生成一个CQE。然后,由CQE生成WC,向应用程序101上报工作完成。
综上所述,RDMA支持双边操作和单边操作,send属于双边操作,read/write属于单边操作。在单边操作中,本端服务器能直接从对端服务器读取数据,或向对端服务器写入数据,无需对端服务器接收数据,再通过对端服务器的应用程序读取或写入内存,在批量数据传输中能更节省时间。
为了对RDMA的性能进行评测,需要测量服务器使用RDMA进行数据传输的延时,即RDMA硬件延时。RDMA硬件延时具体指的是从本端服务器的网络适配器收到应用程序下发的门铃信号开始,到该网络适配器通过CQE向应用程序报告完成消息传递结束的时间。
但是,目前RDMA硬件延时只能借助专用的延时检测器。如图4所示,延时检测器会捕获并记录本端应用程序向对端网络适配器发送的门铃信号时间。本端网络适配器接收到本端应用程序的门铃信号后,将执行WQE,向对端网络适配器发送多个消息报文(例如REQ_MSG1,REQ_MSG2,……,REQ_MSGn)。对端网络适配器一一处理完成报文后,将向本端服务器发送对应ACK(例如ACK_MSG1、ACK_MSG2,……,ACK_MSGn),网络适配器收到ACK后,CQ中将生成CQE,进而通过CQE生成WC,向本端应用程序上报工作完成。延时检测器还会获取本端网络适配器上报工作完成的时间。最终,根据工作完成时间与门铃信号时间的差值,确定RDMA硬件延时。
由于需要延时检测器连接网络适配器进行RDMA硬件延时测量,增加了额外的硬件成本。并且,由于延时检测器需要连接网络适配器,无法在服务器线上运行时进行RDMA硬件延时测量,使得无法对RDMA性能进行评估,进而无法对RDMA工作进行调优,影响数据传输效率。
为了解决测量RDMA硬件延时需要额外硬件设备的问题,本申请提供了一种延时测量方法,记录接收到门铃信号的时间和生成CQE的时间,并将两个时间通过CQE上报给应用程序,进而可以不使用额外的硬件就能测量RDMA硬件延时。并且,本申请提供的延时测量方法中对端服务器也会记录接收报文的时间和处理报文的时间,并根据接收报文的时间和处理报文的时间得到对端服务器的RDMA硬件延时。
下面以图1所示RDMA系统结构为例,并结合图5所示方法流程,对本申请提供的一种延时测量方法的步骤进行详细描述。
S501、应用程序101向网络适配器103发送门铃信号,门铃信号的发送时间为T1。
应用程序101将向网络适配器103发送门铃信号通知网络适配器103开始进行RDMA业务处理,网络适配器103获取到门铃信号后,将记录接收到门铃信号的时间T1。
具体地,服务器100需要访问服务器200中的数据时,服务器100的应用程序101将生成WR,并通过网络适配器103提供的程序将WR转换为WQE,将WQE下发到网络适配器103的WQ中。如果是RDMA双边操作,网络适配器203中也已经生成了对应的WQE。在应用程序101的WR发送完成后,应用程序101将向网络适配器103发送门铃信号通知网络适配器103开始进行RDMA业务处理,具体过程可参考图2、图3及其相关描述,此处不再赘述。而网络适配器103将记录接收到门铃信号的时间T1。
S502、网络适配器103向网络适配器203发送报文并在每个WQE的最后一个报文中携带发送时间T3和时间T1。
网络适配器103将执行WQE,向服务器200的网络适配器203发送一个或多个报文,所述报文也可称为请求报文。网络适配器103还将在每个WQE的最后一个报文中携带该报文的发送时间T3和门铃信号的时间T1。
应理解,网络适配器103执行一个WQE,可能会发送一个或多个报文,而WQ中又可以存在多个WQE,网络适配器103只会在每个WQE的最后一个报文中携带该报文的发送时间T3和门铃信号时间T3。
S503、网络适配器203记录接收到每个WQE的最后一个报文的时间T4。
网络适配器203接收网络适配器103发送的一个或多个报文,在网络适配器203接收到每个WQE的最后一个报文后,网络适配器203将记录接收到该WQE的最后一个报文的时间T4。
网络适配器203是通过报文的操作码(Operation Code,OPCode)来识别最后一帧报文的。举例来说,对于RDMA双边操作,当OpCode字段的码值为b00010(SEND last),b00011(SEND last with Immediate),b00100(SEND only),b00101(SEND only withImmediate),b10110(SEND last with Invalidate)或者b10111(SEND Only withInvalidate)时,该报文为最后一帧报文。对于RDMA单边操作,当OpCode字段的码值为b01000(WRITE last),b01001(WRITE last with Immediate),b01010(WRITE Only),b01011(WRITE Only with Immediate),或者b01100(READ Request)时,该报文为最后一帧报文。
S504、网络适配器203对报文进行处理。
网络适配器203对报文一一进行处理,例如,根据报文接收数据、写入数据或读取数据等。其中,如果是RDMA双边操作,在处理好一个WQE的所有报文后,会消耗网络适配器203的WQE,并在CQ中生成对应的CQE。
在一些实施例中,将先执行步骤S504,网络适配器203对报文进行处理,再执行步骤S503网络适配器203记录接收到每个WQE的最后一个报文的时间T4。
S505、网络适配器203记录接收端生成CQE或EQE的时间T5,并在上报完成的信号中携带时间T1、T3、T4和T5。
网络适配器203将记录接收端生成CQE或EQE的时间T5。如果是RDMA双边操作,网络适配器203是根据CQE上报完成,CQE中携带时间T1、T3、T4和T5;如果是RDMA单边操作,网络适配器203将在EQ中生成对应的EQE,通过EQE上报完成,在EQE中携带时间T1、T3、T4和T5,其中,EQE是网络适配器203用于告知应用程序异步事件信息的。
S506、网络适配器203向网络适配器103发送ACK。
网络适配器203将根据已经完成的报文,向网络适配器103回复ACK,ACK用于向网络适配器103告知发来的数据已确认接收无误。其中,网络适配器203可以是在处理一个报文后,就回复一个对应的ACK给网络适配器103。也即是说,步骤S505和步骤S506是同步进行的。
在一些实施例中,由于网络适配器103发送报文的速度较快,网络适配器203将先接收下报文,再逐一处理接收下来的报文。并且,网络适配器203是在处理完一个WQE对应的部分或者所有报文后,再逐一回复每个报文的ACK。也即是说,先执行步骤S505中网络适配器203记录一个WQE的最后一个报文处理完成的时间T5,然后执行步骤S506网络适配器203向网络适配器103发送该WQE对应的部分或所有报文的ACK。然后,网络适配器203再执行步骤S504处理下一个WQE。
在另一些实施例中,网络适配器203也可以针对多个报文,只回复一个ACK。具体地,网络适配器203处理了多个报文后,只使用一个ACK对该多个报文一起答复。也即是说,可以是一个报文就对应一个ACK,也可以是多个报文对应一个ACK。应理解,本申请对网络适配器203回复ACK的方式不作具体限定。
S507、网络适配器103根据ACK生成CQE,并在CQE中携带时间T1和时间T2。
网络适配器103作为发送端,会接收到网络适配器203回复ACK。无论是单边操作还是双边操作,在接收到每个WQE的最后一个报文对应的ACK时,会生成该WQE对应的CQE,CQE的生成时间为T2。并且,网络适配器103会在生成的CQE中还携带该CQE的生成时间T2和时间T1。
在一些实施例中,CQE中也可以直接携带第一延时△T1,其中,第一延时△T1为时间T2和时间T1的差值。第一延时△T1的计算方式具体可参考下述公式(1)。
△T1=T2-T1 (1)
S508、应用程序101从网络适配器103获取CQE,并根据时间T2和时间T1确定第一延时。
应用程序101从网络适配器103的CQ中通过轮询或者中断的方式获取CQE,并得到CQE中携带的时间T2,并确定第一延时△T1,其中,第一延时△T1为时间T2和时间T1的差值,具体计算方式可参考上述公式(1)。
在一些实施例中,如果CQE中直接携带了第一延时△T1,应用程序101将直接获取该第一延时△T1。
下面对应用程序101从CQ中通过轮询或者中断的方式获取CQE进行详细介绍。其中,轮询是指应用程序101每隔一段时间会获取CQ状态,检查CQ中是否有新的CQE到来。在CQ中有新的CQE到来时,获取CQE并得到CQE中携带的时间T2或第一延时△T1。中断指的是网络适配器103在CQ中有新的CQE时,就通过中断机制上报给应用程序101,应用程序101收到上报的CQE信息后,就获取该CQE信息并得到CQE中携带的时间T2或第一延时△T1。
S509、应用程序201从网络适配器203获取CQE或EQE,根据时间T1、T3、T4和T5确定第二延时。
应用程序201通过轮询或者中断的方式获取网络适配器203中的CQE或者EQE,并根据CQE或者EQE中携带的时间T1、T3、T4和T5,得到第二延时△T2,其中,第二延时△T2是根据时间T3和时间T1的差值,以及时间T5和时间T4的差值得到的。第二延时△T2的计算方式具体可参考下述公式(2)。
△T2=(T3-T1)+(T5-T4) (2)
其中,如果是单边操作,应用程序201是从EQ中通过轮询或者中断的方式获取EQE,并解析得到EQE中的时间T1、T3、T4和T5。如果是双边操作,应用程序201将从服务器200的完成队列中通过轮询或者中断的方式获取CQE,并解析得到CQE中的时间T1、T3、T4和T5。
在一些实施例中,步骤S505中,上报完成的信号中也可以携带的第二延时△T3。也即是说,网络适配器203根据时间T1、T3、T4和T5,得到了第二延时△T2,并在上报完成的信号中携带第二延时△T2。在步骤S509中,应用程序201通过轮询或者中断的方式,获取EQE或者CQE后,直接解析得到第二延时△T2。
在一些实施例中,在执行步骤S505、网络适配器203记录每个WQE的最后一个报文处理完成的时间T5,并在上报完成的信号中携带时间T1、T3、T4和T5后,就执行S509、应用程序201根据时间T1、T3、T4和T5,确定第二延时,然后再执行步骤S506。或者,步骤S509在步骤S505后的任一时间执行。也即是说,本申请对步骤S506-步骤S509执行顺序不作具体限定。
综上所述,本端网络适配器通过在CQE中携带门铃信号的时间以及CQE的生成时间,使得应用程序能确定第一延时,该第一延时表示RDMA完成一个WQE所花费时间。这样,通过CQ就能获取到RDMA硬件延时,无需额外的硬件等设备,节省了成本。另外,对端网络适配器还能通过CQE或者EQE携带门铃信号时间以及本端网络适配器发送每个WQE的最后一个报文的时间等时间,确定第二延时,该第二延时表示了对端网络适配器接收一个WQE所有报文花费的时间和对端网络适配器处理一个WQE所有报文花费的时间,该第二延时能衡量本端服务器与对端服务器的性能。并且,门铃信号时间和本端网络适配器发送WQE最后一个报文的时间只在一个WQE的最后一个报文中携带,节省了通道开销。第二延时也是通过对端网络适配器的业务通道上传的,也无需额外的硬件等设备,节省了成本。
为了解决测量RDMA硬件延时需要额外硬件设备的问题,本申请提供了一种延时测量装置600,可以记录接收到门铃信号的时间和生成CQE的时间,并将两个时间通过CQE上报给应用程序,进而可以不使用额外的硬件就能测量RDMA硬件延时。并且,也会记录接收报文的时间和处理报文的时间,并根据接收报文的时间和处理报文的时间得到对端服务器的RDMA硬件延时。如图6所示,延时测量装置600可以包括获取单元610、发送单元620、生成单元630以及确定单元640。
获取单元610用于记录应用程序向网络适配器发送门铃信号的时间T1,门铃信号用于指示发送端开始向接收端进行远程直接数据存取RDMA的数据传输。
发送单元620还用于根据工作队列元素WQE向接收端发送一个或多个报文,WQE用于指示发送端与接收端进行RDMA数据传输。
发送单元620还用于根据发送端发送的一个或多个报文,向发送端发送响应报文。
生成单元630用于在接收到最后一个响应报文后,生成发送端的完成队列条目CQE,发送端的CQE中携带了时间T1和时间T2,时间T2是发送端的CQE的生成时间。
确定单元640用于根据发送端的CQE携带时间T1和时间T2确定第一延时,第一延时用于反映发送端的硬件延时。
在一些实施例中,发送单元620还具体用于根据WQE向接收端发送一个或多个报文,并在最后一个报文中携带最后一个报文的发送时间T3和时间T1,以使接收端根据时间T3和时间T1确定第二延时,第二延时用于反映发送端与接收端的硬件延时。
在一些实施例中,获取单元610记录接收到一个或多个报文中最后一个报文的时间T4。
在一些实施例中,获取单元610还用于对一个或多个报文进行处理,并获取接收端生成CQE或事件队列条目EQE的时间T5,接收端生成的CQE和所述EQE用于指示最后一个报文处理完成。
在一些实施例中,确定单元640还用于根据时间T1、时间T3、时间T4以及时间T5确定第二延时。
在一些实施例中,当发送端与接收端之间为RDMA单边操作时,生成单元630还用于生成EQE,EQE中携带时间T1、时间T3、时间T4以及时间T5;或者,当发送端与接收端之间为RDMA双边操作时,接收端还用于生成接收端的CQE,接收端的CQE中携带时间T1、时间T3、时间T4以及时间T5。
综上所述,延时测量装置600通过在CQE中携带门铃信号的时间以及CQE的生成时间,使得应用程序能确定第一延时,该第一延时表示RDMA完成一个WQE所花费时间。这样,通过CQ就能获取到RDMA硬件延时,无需额外的硬件等设备,节省了成本。延时测量装置600还能通过CQE或者EQE携带门铃信号时间以及发送每个WQE的最后一个报文的时间等时间,确定第二延时,该第二延时表示了接收一个WQE所有报文花费的时间和处理一个WQE所有报文花费的时间,该第二延时能衡量发送端和接收端的性能。并且,门铃信号时间和发送WQE最后一个报文的时间只在一个WQE的最后一个报文中携带,节省了通道开销。第二延时也是通过接收端的业务通道上传的,也无需额外的硬件等设备,节省了成本。
参见图7,图7为本申请实施例提供的一种计算设备的结构示意图。其中,所述计算设备700可以是前述内容中的延时测量装置600。如图7所示,计算设备700包括:处理器710、通信接口720以及存储器730,所示处理器710、通信接口720以及存储器730通过内部总线740相互连接。
处理器710、通信接口720和存储器730可通过总线方式连接,也可通过无线传输等其他手段实现通信。本申请实施例以通过总线740连接为例,其中,总线740可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。所述总线740可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述处理器710可以由一个或者多个通用处理器构成,例如中央处理器(CentralProcessing Unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(Application-Specific Inegrated Circuit,ASIC)、可编程逻辑器件(ProgrammableLogic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)、现场可编程逻辑门阵列(Field-Programmable GateArray,FPGA)、通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。处理器710执行各种类型的数字存储指令,例如存储在存储器730中的软件或者固件程序,它能使计算设备700提供较宽的多种服务。
具体地,所述处理器710可以由至少一个通用处理器构成,例如中央处理器(Central Processing Unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)、通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。处理器710执行各种类型的数字存储指令,例如存储在存储器730中的软件或者固件程序,它能使计算设备700提供较宽的多种服务。
存储器730可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器730也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器730还可以包括上述种类的组合。其中,存储器730可以存储有程序代码。程序代码可以通过在CQE中携带门铃信号的时间以及CQE的生成时间,使得应用程序能确定第一延时。以及通过CQE或者EQE携带门铃信号时间以及发送每个WQE的最后一个报文的时间等时间,确定第二延时。还可以用于执行图5实施例描述的其他步骤,这里不再进行赘述。所述存储器730的代码可以包括实现获取单元、发送单元、生成单元以及确定单元功能的代码,获取单元的功能包括图6中的获取单元610的功能,例如记录应用程序向网络适配器发送门铃信号的时间T1,门铃信号用于指示发送端开始向接收端进行远程直接数据存取RDMA的数据传输,具体可用于执行前述方法的步骤S501、步骤S503、步骤S505及其可选步骤,这里不再进行赘述。发送单元的功能包括图6中的发送单元620的功能,例如根据工作队列元素WQE向接收端发送一个或多个报文,WQE用于指示发送端与接收端进行RDMA数据传输。具体可用于执行前述方法的步骤S502、步骤S506及其可选步骤,这里不再进行赘述。生成单元的功能包括图6中的生成单元630的功能,例如在接收到最后一个响应报文后,生成发送端的完成队列条目CQE,发送端的CQE中携带了时间T1和时间T2,时间T2是发送端的CQE的生成时间。具体可用于执行前述方法的步骤S505、步骤S507及其可选步骤,这里不再进行赘述。确定单元的功能包括图6中确定单元640的功能,例如根据发送端的CQE携带时间T1和时间T2确定第一延时,第一延时用于反映发送端的硬件延时。具体可用于执行前述方法的步骤S508、步骤S509及其可选步骤,这里不再进行赘述。
通信接口720可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(Peripheral Component Interconnect express,PCIe)总线接口)、有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他设备或模块进行通信。
需要说明的,图7仅仅是本申请实施例的一种可能的实现方式,实际应用中,所述计算设备还可以包括更多或更少的部件,这里不作限制。关于本申请实施例中未示出或未描述的内容,可参见前述图5所述实施例中的相关阐述,这里不再赘述。图7所示的计算设备还可以是多个计算节点构成的计算机集群,本申请不作具体限定。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,图5所示的方法流程得以实现。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图5所示的方法流程得以实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(Digital Video Disc,DVD)、或者半导体介质。半导体介质可以是SSD。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种延时测量系统,其特征在于,所述系统包括发送端和接收端,
所述发送端,用于记录应用程序向网络适配器发送门铃信号的时间T1,所述门铃信号用于指示所述发送端开始向所述接收端进行远程直接数据存取RDMA的数据传输;
所述发送端,还用于根据工作队列元素WQE向所述接收端发送一个或多个报文,所述WQE用于指示所述发送端与所述接收端进行RDMA数据传输;
所述接收端,用于根据所述发送端发送的一个或多个报文,向所述发送端发送响应报文;
所述发送端,还用于在接收到最后一个响应报文后,生成所述发送端的完成队列条目CQE,所述发送端的CQE中携带了所述时间T1和时间T2,所述时间T2是所述发送端的CQE的生成时间;
所述发送端,还用于根据所述发送端的CQE携带的所述时间T1和所述时间T2确定第一延时,所述第一延时用于反映所述发送端的硬件延时。
2.根据权利要求1所述的系统,其特征在于,
所述发送端,具体用于根据所述WQE向所述接收端发送所述一个或多个报文,并在最后一个报文中携带所述最后一个报文的发送时间T3和所述时间T1,以使所述接收端根据所述时间T3和所述时间T1确定第二延时,所述第二延时用于反映所述发送端与所述接收端的硬件延时。
3.根据权利要求2所述的系统,其特征在于,
所述接收端,还用于记录接收到所述一个或多个报文中最后一个报文的时间T4;
所述接收端,还用于对所述一个或多个报文进行处理,并获取所述接收端生成CQE或事件队列条目EQE的时间T5,所述接收端生成的CQE或所述EQE用于指示所述最后一个报文处理完成;
所述接收端,还用于根据所述时间T1、所述时间T3、所述时间T4以及所述时间T5确定所述第二延时。
4.根据权利要求3所述的系统,其特征在于,
当所述发送端与所述接收端之间为RDMA单边操作时,所述接收端用于生成所述EQE,所述EQE中携带所述时间T1、所述时间T3、所述时间T4以及所述时间T5;
或者,当所述发送端与所述接收端之间为RDMA双边操作时,所述接收端还用于生成所述CQE,所述CQE中携带所述时间T1、所述时间T3、所述时间T4以及所述时间T5。
5.一种延时测量方法,其特征在于,应用于包括发送端和接收端的延时测量系统中的发送端,包括:
获取应用程序向网络适配器发送门铃信号的时间T1,所述门铃信号用于指示所述发送端开始向接收端进行远程直接数据存取RDMA的数据传输;
根据工作队列元素WQE向所述接收端发送一个或多个报文,所述WQE用于指示所述发送端与所述接收端进行RDMA数据传输;
接收所述接收端发送的响应报文,并在接收到最后一个响应报文后,生成所述发送端的完成队列条目CQE,所述CQE中携带了所述时间T1和时间T2,所述时间T2是所述发送端的CQE的生成时间;
根据所述CQE携带的时间T1和时间T2确定第一延时,所述第一延时用于反映所述发送端的硬件延时。
6.根据权利要求5所述的方法,其特征在于,
所述根据工作队列元素WQE向所述接收端发送一个或多个报文,包括:
根据所述WQE向所述接收端发送所述一个或多个报文,并在最后一个报文中携带所述最后一个报文的发送时间T3和时间T1,以使所述接收端根据所述时间T3和所述时间T1确定第二延时,所述第二延时用于反映所述发送端和所述接收端的硬件延时。
7.一种延时测量方法,其特征在于,应用于包括发送端和接收端的延时测量系统中的接收端,包括:
获取发送端发送的一个或多个报文,并记录接收到所述一个或多个报文中最后一个报文的时间T4,所述最后一个报文中携带所述最后一个报文的发送时间T3和所述时间T1,所述时间T1为所述发送端的应用程序向网络适配器发送门铃信号的时间,所述时间T3为所述发送端向所述接收端发送最后一个报文的时间;
对所述一个或多个报文进行处理,并获取所述接收端生成CQE或事件队列条目EQE的时间T5,所述接收端生成的CQE或所述EQE指示所述最后一个报文处理完成;
根据所述时间T1、所述时间T3、所述时间T4以及所述时间T5确定第二延时。
8.根据权利要求7所述的方法,其特征在于,
当所述发送端与所述接收端之间为RDMA单边操作时,所述获取所述接收端生成CQE或事件队列条目EQE的时间T5,包括:
生成所述EQE,所述EQE中携带所述时间T1、所述时间T3、所述时间T4以及所述时间T5;
或者,当所述发送端与所述接收端之间为RDMA双边操作时,所述获取所述接收端生成CQE或事件队列条目EQE的时间T5,包括:
生成所述CQE,所述CQE中携带所述时间T1、所述时间T3、所述时间T4以及所述时间T5。
9.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,执行如权利要求5或6所述的方法;或者执行权利要求7或8所述的方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,在被计算设备执行时,计算设备执行如权利要求5至6或权利要求7至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138981.0A CN114584492B (zh) | 2022-02-15 | 2022-02-15 | 一种延时测量方法、系统以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138981.0A CN114584492B (zh) | 2022-02-15 | 2022-02-15 | 一种延时测量方法、系统以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584492A true CN114584492A (zh) | 2022-06-03 |
CN114584492B CN114584492B (zh) | 2023-01-24 |
Family
ID=81770118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210138981.0A Active CN114584492B (zh) | 2022-02-15 | 2022-02-15 | 一种延时测量方法、系统以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584492B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934625A (zh) * | 2023-03-15 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种用于远程直接内存访问的敲门铃方法、设备及介质 |
CN116582492A (zh) * | 2023-07-14 | 2023-08-11 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
CN110888827A (zh) * | 2018-09-10 | 2020-03-17 | 华为技术有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111400212A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种基于远程直接数据存取的传输方法、设备 |
CN112822300A (zh) * | 2021-04-19 | 2021-05-18 | 北京易捷思达科技发展有限公司 | 基于rdma的数据传输方法、装置及电子设备 |
WO2022007470A1 (zh) * | 2020-07-06 | 2022-01-13 | 华为技术有限公司 | 一种数据传输的方法、芯片和设备 |
CN114024874A (zh) * | 2021-10-29 | 2022-02-08 | 浪潮商用机器有限公司 | 基于rdma的数据传输方法、装置、设备及存储介质 |
-
2022
- 2022-02-15 CN CN202210138981.0A patent/CN114584492B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888827A (zh) * | 2018-09-10 | 2020-03-17 | 华为技术有限公司 | 数据传输方法、装置、设备及存储介质 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
CN111400212A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种基于远程直接数据存取的传输方法、设备 |
WO2022007470A1 (zh) * | 2020-07-06 | 2022-01-13 | 华为技术有限公司 | 一种数据传输的方法、芯片和设备 |
CN112822300A (zh) * | 2021-04-19 | 2021-05-18 | 北京易捷思达科技发展有限公司 | 基于rdma的数据传输方法、装置及电子设备 |
CN114024874A (zh) * | 2021-10-29 | 2022-02-08 | 浪潮商用机器有限公司 | 基于rdma的数据传输方法、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934625A (zh) * | 2023-03-15 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种用于远程直接内存访问的敲门铃方法、设备及介质 |
CN115934625B (zh) * | 2023-03-15 | 2023-05-16 | 珠海星云智联科技有限公司 | 一种用于远程直接内存访问的敲门铃方法、设备及介质 |
CN116582492A (zh) * | 2023-07-14 | 2023-08-11 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
CN116582492B (zh) * | 2023-07-14 | 2023-09-26 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114584492B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114584492B (zh) | 一种延时测量方法、系统以及相关设备 | |
US8032581B2 (en) | Persistent information unit pacing | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
WO2017084400A1 (zh) | 一种NVMe网络化存储的实现方法、终端、服务器及系统 | |
JP6995052B2 (ja) | モジュールバスとaxiバスの間のリクエストを変換するためのバスブリッジ | |
KR20190028217A (ko) | PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템 | |
EP4357901A1 (en) | Data writing method and apparatus, data reading method and apparatus, and device, system and medium | |
US6640312B1 (en) | System and method for handling device retry requests on a communication medium | |
US8065401B2 (en) | Systems and methods for frame ordering in wide port SAS connections | |
WO2020029602A1 (zh) | 检测时延的方法、装置及系统 | |
JP2010211322A (ja) | ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法 | |
US10949095B2 (en) | Method, network adapters and computer program product using network adapter memory to service data requests | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
CN110445666B (zh) | 一种网络质量检测方法、装置及服务器 | |
WO2023206963A1 (zh) | 一种数据处理方法、系统及相关组件 | |
CN116126613A (zh) | 一种PCIe设备的位置检测方法、装置、电子设备及存储介质 | |
US4744024A (en) | Method of operating a bus in a data processing system via a repetitive three stage signal sequence | |
CN114710426A (zh) | 一种确定读操作往返时延的方法、装置、系统及相关设备 | |
WO2022141250A1 (zh) | 数据传输方法和相关装置 | |
TWI546551B (zh) | Multi-analysis system and its multi-analyzer | |
US20240069754A1 (en) | Computing system and associated method | |
CN117687889B (zh) | 一种内存扩展设备的性能测试装置及方法 | |
CN109284243B (zh) | 基于usb的fpga通信控制装置及方法 | |
JP2004234306A (ja) | サーバ、コンポーネント処理のモニタ方法およびプログラム | |
US11176009B2 (en) | Implementing power up detection in power down cycle to dynamically identify failed system component resulting in loss of resources preventing IPL |
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 |