CN115695578A - 一种数据中心网络tcp和rdma混合流调度方法、系统及装置 - Google Patents
一种数据中心网络tcp和rdma混合流调度方法、系统及装置 Download PDFInfo
- Publication number
- CN115695578A CN115695578A CN202211145016.2A CN202211145016A CN115695578A CN 115695578 A CN115695578 A CN 115695578A CN 202211145016 A CN202211145016 A CN 202211145016A CN 115695578 A CN115695578 A CN 115695578A
- Authority
- CN
- China
- Prior art keywords
- priority
- rdma
- tcp
- data
- data packet
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种数据中心网络TCP和RDMA混合流调度方法、系统及装置,通过将TCP数据包和RDMA数据包按照各自的优先级分别缓存在不同的交换机队列中,并分别配置两类数据包所需的传输环境。在传输过程中,按照优先级由高到低的顺序依次传输各TCP数据包和各RDMA数据包,同一优先级内存储TCP数据包和RDMA数据包的两类队列按照轮询调度的方式传输。本发明能够适应TCP和RDMA混合流调度需求,有效利用带宽资源,较为公平、高效地调度TCP流和RDMA流,对于对时延和吞吐有不同需求的流量提供针对性服务。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种数据中心网络TCP和RDMA混合流调度方法、系统及装置。
背景技术
数据中心的高速建设给网络技术带来了诸多挑战,世界数据中心中的网络总流量高速增长,其中,部署了软件定义网络(Software Defined Network,SDN)功能和网络功能虚拟化功能(Network Function Virtualization,NFV)的云计算数据中心处理了超过百分之九十以上的工作负载,而这一比例还将伴随数据中心网络技术发展变得更高,数据中心网络传输性能日渐成为各大企业追求的目标。
早期数据中心规模较小,内部网络中的数据流量以TCP流为主,但随着互联网的高速发展,数据中心中数据量爆炸式增长,传统网络逐渐暴露出了诸多缺陷,如传统TCP/IP传输模式下存在大量的数据拷贝和上下文切换的开销,在数据流的传输过程中消耗了大量CPU和总线资源,并且存在TCP incast(TCP入波)问题,当客户端同时向多个服务器发起请求时,可能出现大量服务器同时发送响应报文,导致以太网交换机缓冲能力不足而发生流量崩溃,这导致传统网络在延迟、带宽等方面难以满足当前数据中心对网络性能的要求。因此,通过引入RDMA技术,将包括传输层、IP层和数据链路层在内的一部分内核任务交给硬件网卡完成,通过实现对对端主机内存的直接访问、读写操作释放了大量CPU资源,使得传输效率升高、延迟大幅降低。
尽管RDMA相比传统的TCP/IP有着很大优势,目前在数据中心内RDMA并不能完全替代TCP,因而数据中心内部会同时存在RDMA流和TCP流。但是,由于RDMA绕过了内核和协议栈对数据的处理,丢包重传会对RDMA传输产生更加严重的性能损害,需要为其配置一个无损的传输环境。而TCP流凭借确认应答、自动重传机制对传输环境要求较低,这导致传统的基于TCP的流量调度策略无法适用于TCP和RDMA的混合流。现有的流量调度策略难以对不同类型的流量提供针对性服务。
发明内容
鉴于此,本发明实施例提供了一种数据中心网络TCP和RDMA混合流调度方法、系统及装置,以消除或改善现有技术中存在的一个或更多个缺陷,解决TCP流和RDMA流由于对传输环境要求不同,不能直接进行混合调度的问题。
一方面,本发明提供一种数据中心网络TCP和RDMA混合流调度方法,所述方法在交换机上执行,该方法包括以下步骤:
数据包传输过程中,查询待输出的多个数据包的头部添加的流量类别和优先级标记字段,以区分TCP数据包和RDMA数据包的类型以及标记各数据包的优先级;
将各数据包按照所述流量类别和优先级标记字段记载的内容,按照优先级和类别将各数据包分配至多个交换机队列中,所述交换机队列分为多个优先级,每个优先级中包含第一类队列和第二类队列,各优先级的所述第一类队列用于缓存相应优先级的TCP数据包,各优先级的所述第二类队列用于缓存相应优先级的RDMA数据包;
按照设定规则传输各交换机队列中的TCP数据包和RDMA数据包,其中,所述设定规则包括:按照优先级由高到低的顺序依次传输各TCP数据包和各RDMA数据包,并且每个优先级内按照轮训调度的方式传输所述第一类队列中的TCP数据包和所述第二类队列中的RDMA数据包,其中,为各优先级内第二类队列的所述RDMA数据包配置无损传输环境。
在一些实施例中,查询待输出的多个数据包的头部添加的流量类别和优先级标记字段,包括:
采用设定数量个由小到大的奇数自然数标记TCP数据包的优先级和流量类别;采用所述设定数量个由小到大的偶数自然数标记RDMA数据包的优先级和流量类别。
在一些实施例中,所述交换机队列中各优先级的第二类队列采用PFC流量控制进行无损传输。
在一些实施例中,所述流量类别和优先级标记字段由相应数据包的源主机根据时延需求配置对应的优先级,所述优先级的数值与所述数据包的最大可接受时延呈反比。
在一些实施例中,为各交换机队列设置数据包传输任务数的第一上限值,若存在交换机队列中的数据包传输任务数大于等于所述第一上限值,则将后续要加入该交换机队列的数据包缓存在次一级优先级的交换机队列中等待传输。
在一些实施例中,为各优先级设置数据包传输时间的第二上限值,若存在优先级中的数据包传输时间大于等于所述第二上限值,则按照设定比例提高传输带宽资源直至相应优先级中的数据包传输完成。
在一些实施例中,将各数据包按照所述流量类别和优先级标记字段记载的内容,按照优先级和类别将各数据包分配至多个交换机队列中之前,还包括:
为各交换机队列设置剩余存储空间限值,若判断后续要加入指定交换机队列的数据包在写入后,所述指定交换机队列的剩余存储空间的容量小于相应的剩余存储空间限值,则将该数据包预存储在缓存空间中。
另一方面,本发明还提供一种数据中心网络TCP和RDMA混合流调度系统,包括:
源主机,用于生成数据包,并根据数据要的时延需求配置优先级,根据所述数据包类型和所述优先级在所述数据包的头部添加流量类别和优先级标记字段;
交换机,用于执行上述数据中心网络TCP和RDMA混合流调度方法。
另一方面,本发明还提供一种数据中心网络TCP和RDMA混合流调度装置,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现上述方法的步骤。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。
本发明的有益效果至少是:
本发明所述数据中心网络TCP和RDMA混合流调度方法、系统及装置中,通过将TCP数据包和RDMA数据包按照各自的优先级分别缓存在不同的交换机队列中,并分别配置两类数据包所需的传输环境。在传输过程中,按照优先级由高到低的顺序依次传输各TCP数据包和各RDMA数据包,同一优先级内存储TCP数据包和RDMA数据包的两类队列按照轮询调度的方式传输。本发明能够适应TCP和RDMA混合流调度需求,有效利用带宽资源,较为公平、高效地调度TCP流和RDMA流,对于对时延和吞吐有不同需求的流量提供针对性服务。
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所述数据中心网络TCP和RDMA混合流调度方法的流程示意图。
图2(a)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略在不同负载下TCP短流流完成时间对比图。
图2(b)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略在不同负载下RDMA短流流完成时间对比图。
图3(a)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略在不同负载下TCP长流流完成时间对比图。
图3(b)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略在不同负载下RDMA长流流完成时间对比图。
图4(a)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略在不同负载下TCP overall流(TCP统计流)完成时间对比图。
图4(b)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略在不同负载下RDMA overall流(RDMA统计流)完成时间对比图。
图5(a)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略对TCP短流和RDMA短流完成时间对比图。
图5(b)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略对TCP长流和RDMA长流完成时间对比图。
图5(c)为轮询调度策略、严格优先级调度策略以及本发明中基于优先级的轮询调度策略对平均流完成时间对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
现有技术中,中心网络大量采用TCP流和RDMA流,其中,RDMA主要使用零拷贝技术(Zero-copy)和内核协议栈旁路技术(Kernel bypass)减小了数据复制的开销,节省了大量的CPU和总线资源。零拷贝技术使得应用程序可以绕过网络协议栈将数据直接发送到缓冲区,内核协议栈旁路技术使得应用程序可以避免大量上下文切换开销,在用户态做到对数据流量的直接传输。两端主机的CPU除了在建立连接、注册内存等操作之外,在整个数据传输过程中不消耗资源,因此RDMA能实现在较低延迟、较高带宽情况下获得较高的吞吐量,这使得RDMA技术在数据中心场景中获得极高的关注度。但由于RDMA绕过了内核和协议栈对数据的处理,受限于网卡的硬件资源,目前的RDMA拥塞控制依靠简单的Go-Back-N方法来恢复丢失的数据包,丢包重传会对RDMA传输产生更加严重的性能损害,一旦丢包率变高,RDMA连接的性能将急剧下降。因此,需要采用PFC机制来保证无损以太网。相应的,TCP流则不需要相应的传输环境配置。因此,在进行传输调度过程中,两者要进行区分,但是现有技术中严格优先级调度策略要求交换机内部设置优先级队列,按照优先程度划分交换机缓存区域。在严格按照优先级进行调度的情况下,高优先级队列可以抢占低优先级队列的数据流输出权,这样的流量调度策略保证了高优先级的数据流可以快速传输,流完成时间很短。如一些通知、请求类的短流可以快速通过交换机传输。但是,在高优先级队列中元素持续不断的情况下,低优先级队列中的数据包无法输出或需要等待很长时间才能进行输出,这会给一部分流带来很高的时延影响整体的流完成时间,极大影响终端用户的使用体验。而这种方法没有考虑RDMA流对传输环境的要求,严格按优先级传输的情况下将RDMA限制在固定队列会出现RDMA流和TCP流不公平的情况。例如交换机的第一优先级队列无论分配给TCP流还是RDMA流都将造成对另一种流量的传输资源抢占,不符合设计的公平理念。
在流量调度时应考虑到不同大小的数据流的传输需求,例如,对于网页搜索(web-search)中多为短流,对传输时延更为敏感,与用户体验密切相关,需要尽快传输;对于数据挖掘(data-mining)中多为长流,对传输吞吐性能更为敏感,需要保证其吞吐率而无需快速传输,对不同大小的流量合理分配网络资源可以大幅提高网络传输性能,增加带宽利用率。
所以,本发明针对数据中心网络中同时存在的TCP流和RDMA流,提供一种数据中心网络TCP和RDMA混合流调度方法,所述方法在交换机上执行,如图1所示,该方法包括以下步骤S101~S103:
步骤S101:数据包传输过程中,查询待输出的多个数据包的头部添加的流量类别和优先级标记字段,以区分TCP数据包和RDMA数据包的类型以及标记各数据包的优先级。
步骤S102:将各数据包按照流量类别和优先级标记字段记载的内容,按照优先级和类别将各数据包分配至多个交换机队列中,交换机队列分为多个优先级,每个优先级中包含第一类队列和第二类队列,各优先级的第一类队列用于缓存相应优先级的TCP数据包,各优先级的第二类队列用于缓存相应优先级的RDMA数据包。
步骤S103:按照设定规则传输各交换机队列中的TCP数据包和RDMA数据包,其中,设定规则包括:按照优先级由高到低的顺序依次传输各TCP数据包和各RDMA数据包,并且每个优先级内按照轮训调度的方式传输第一类队列中的TCP数据包和第二类队列中的RDMA数据包,其中,为各优先级内第二类队列的RDMA数据包配置无损传输环境。
步骤S101中,TCP数据包和RDMA数据包是由相应的源主机产生的,源主机根据特定业务的传输需求,根据TCP/IP传输协议或RDMA传输协议将待传输的数据配置为相应格式的数据包,发送至交换机进行传输。
在一些实施例中,流量类别和优先级标记字段由相应数据包的源主机根据时延需求配置对应的优先级,优先级的数值与数据包的最大可接受时延呈反比。
由于TCP数据包和RDMA数据包的传输环境需求不同,为了后续进行高效的调度,本实施例要求源主机在生成数据包的过程中,在数据包头部添加标记以指示数据包的类型以及相应的优先级。数据包的优先级可以根据业务类型进行设置,其中,对时延较为敏感的业务可以设置较高的优先级,例如进行网页搜索的数据,对时延较为敏感,可以设置较高优先级,而数据挖掘和数据传输类的对时延要求不高但是要求稳定传输环境,可以设置较低的优先级。
具体的,在一些实施例中,查询待输出的多个数据包的头部添加的流量类别和优先级标记字段,包括:采用设定数量个由小到大的奇数自然数标记TCP数据包的优先级和流量类别;采用设定数量个由小到大的偶数自然数标记RDMA数据包的优先级和流量类别。示例性的,采用1、3、5、7…的奇数自然数标记TCP数据包的优先级,其中1为最高优先级;采用0、2、4、6…的偶数自然数标记RDMA数据包的优先级,其中0为最高优先级;在应用过程中,流量类别和优先级标记字段如果是奇数则可以判断是TCP类别的数据包,如果是偶数则可以判断是RDMA类别的数据包。可以按照数值从小到大优先级越来越低,根据流量类别和优先级标记字段可以用于指示写入的交换机队列。其中,TCP数据包的优先级与RDMA数据包的优先级的优先级是一一对应的关系,例如,包头标记1的TCP数据包的优先级与包头标记为0的RDMA数据包的优先级相同,包头标记3的TCP数据包的优先级与包头标记为2的RDMA数据包的优先级相同,以此类推。
在步骤S102中,由交换机设置多个交换机队列,用于缓存待传输的数据包,由于TCP数据包和RDMA数据包的传输环境需求不同,在同一个优先级中,分别为TCP数据包和RDMA数据包配置两种类型的优先级队列,并配置相应所需的传输环境。具体的,TCP数据包对应的交换机队列传输环境并没有特殊要求,而RDMA数据包对应的交换机队列传输环境需要配置为无损传输环境。所以,在一些实施例中,交换机队列中各优先级的第二类队列采用PFC流量控制进行无损传输。
在步骤S103中,为了兼顾高效性和公平性,本实施例采用严格优先级调度与轮询调度策略相结合的方式,在各优先级之间,采用严格的优先级调度策略,从较高的优先级开始依次向较低的优先级传输,而在相同优先级内,为了兼顾TCP数据包和RDMA数据包,公平分配链路资源,在同一优先级内采用轮询调度策略进行传输。
在一些实施例中,步骤S103中,为各交换机队列设置数据包传输任务数的第一上限值,若存在交换机队列中的数据包传输任务数大于等于第一上限值,则将后续要加入该交换机队列的数据包缓存在次一级优先级的交换机队列中等待传输。
由于在传输数据队列中的待传输数据时,传输每个数据信息都将消耗一定的时间,因此,若数据队列中的待传输数据过多时,将导致数据队列中的待传输数据传输超时,从而影响传输数据的及时性。本实施例中,在分别设置与各优先级对应的用于存储数据信息的数据队列之后,也即设置了各交换机队列之后,为每个交换机队列设置对应的最大队列深度。最大队列深度也即交换机队列最多能够存储的数据信息的容量。需要说明的是,各不同的数据队列的最大队列深度可以是不同的,并且可以在实际操作中,根据实际需求以及实际操作的情况对最大队列深度进行调整。
本实施例为了防止某一类数据包在一个优先级内大量囤积,影响另一类数据包的传输,可以控制每一优先级中两类数据包的数量大致相等,以使得数据传输效率更高,对两类数据包的传输更加公平。
在一些实施例中,步骤S103中,为各优先级设置数据包传输时间的第二上限值,若存在优先级中的数据包传输时间大于等于第二上限值,则按照设定比例提高传输带宽资源直至相应优先级中的数据包传输完成。
在实际应用过程中,交换机可能同时执行多个业务,其带宽资源在不同业务之间进行动态分配。在数据包的传输过程中,如果一个优先级内TCP数据包和RDMA数据包的传输时长大于等于第二上限值,会影响后续低优先级的数据包传输,则可以通过动态调节带宽资源,适当多分配带宽资源以及时将当前优先级的数据包传输结束。
在一些实施例中,步骤S103中,将各数据包按照所述流量类别和优先级标记字段记载的内容,按照优先级和类别将各数据包分配至多个交换机队列中之前,还包括:为各交换机队列设置剩余存储空间限值,若判断后续要加入指定交换机队列的数据包在写入后,指定交换机队列的剩余存储空间的容量小于相应的剩余存储空间限值,则将该数据包预存储在缓存空间中。
为了能够在交换机队列中完整存储相应的TCP数据包或RDMA数据包,可以通过设置剩余存储空间限值的方式限制数据的写入,保证各交换机队列存在一定的冗余空间,以供应急调度处理。
在交换机队列中剩余空间不足,判断后续要加入指定交换机队列的数据包写入后,剩余存储空间小于相应的剩余存储空间限值时,将相应数据包先存储在缓存中;经过一定时间的数据传输,判断后续要加入指定交换机队列的数据包写入后,剩余存储空间大宇相应的剩余存储空间限值时,则可以将存储至缓存中的待传输数据包唤醒,并存储于对应的交换机队列中。
进一步的,在接收到待传输数据包之后,根据与待传输数据对应的数据队列的最大队列深度和当前该数据队列中已存储的待传输数据的数据量,判断待传输数据的数据大小是否超过数据队列的剩余容量;若是,则将待传输数据存储至缓存中;否则,则将待传输数据信息设置于数据队列中。也就是说,当某个数据队列中的待传输数据达到最大队列深度时,则将待传输数据存储至缓存中,以避免数据信息的丢失。
另一方面,本发明还提供一种数据中心网络TCP和RDMA混合流调度系统,包括:
源主机,用于生成数据包,并根据数据要的时延需求配置优先级,根据所述数据包类型和所述优先级在所述数据包的头部添加流量类别和优先级标记字段;
交换机,用于执行上述数据中心网络TCP和RDMA混合流调度方法。
另一方面,本发明还提供一种数据中心网络TCP和RDMA混合流调度装置,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现上述方法的步骤。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。
下面结合一具体实施例对本发明进行说明:
对于数据中心中的几种类型数据流的混合流量,普通交换机无法识别流量种类,想要对数据流进行分类,关键在于对不同类型的数据包进行标记,使其能够被主机网卡、交换机识别进而分类,本实施例基于差分服务代码点(DSCP)的思想对数据包IP头部的Traffic Class字段(以下简称为TC)标记特殊值进而实现数据流的类别区分和优先级划分。在源主机产生数据流的同时对数据包进行特殊标记,不同类型的数据流被标记上不同的数值,在整个数据传输过程中,维持这个数值使得数据流的分类得以实现。具体实现如下:
数据流在源主机生成之时携带一个优先级标识属性priority group值(以下简称为PG),对于TCP和RDMA数据包分别在协议栈和硬件网卡中对其IP首部的TC字段填入特殊标记,这里为了区分两种流量并为其划分优先级,本实施例对TCP数据流分配奇数标记,其中1为最高优先级;对RDMA数据流分配偶数标记,其中0为最高优先级。根据标记的不同可以使数据包进入不同的交换机队列,将TCP流和RDMA流进行不同标记可以将TCP流和RDMA流隔离开来,为RDMA流单独使用PFC进行流量控制,不会影响TCP流正常传输。
为了兼顾高效性和公平性,可以采用严格优先级调度策略和轮询调度策略相结合的方式设计一种基于优先级的轮询调度策略。对于从主机网卡发送来的TCP流和RDMA流,根据数据包中IP首部的Traffic Class字段的内容,交换机将其放进预先设置的对应的优先级队列中,最高优先级队列可以用于发送一些流量控制信息如PFC技术中的pause帧和对于时延非常敏感的数据包,同一优先级TCP数据包和RDMA数据包以一种较为公平的轮询调度方式输出,从这样的设计思路出发,得到了下面的具体调度策略。
将交换机的2n个交换机队列平均分配给TCP流和RDMA流,对于每种流量各设置n个优先级,同一个优先级内的TCP流和RDMA流采用轮询调度方案,按照对时延和吞吐的敏感程度对两种流量划分优先级。对于交换机的2n个优先级队列,0号为最高优先级,2n-1号为最低优先级,通过对TCP流和RDMA流标记不同的PG值使不同类型的流量进入不同的队列,其中将RDMA流设置为走支持PFC的无损传输队列。
这里存在一个优先级标准和轮询标准的优先问题,举个例子,在第一优先级两个队列中RDMA流队列无数据包而TCP流队列有数据包的情况下,是按照优先级标准继续发送高优先级的TCP流还是按照轮询标准发送次优先的RDMA流,在本设计中采用按照优先级标准进行数据传输,这是因为设置的优先级较多,考虑一种极端的情况,RDMA队列中只有优先级最低的数据流,而TCP队列则有高优先级数据量,这时为了均衡两种流量的传输资源而忽视优先程度显然是不合适的。在数据传输时,高优先级队列可以抢占低优先级队列的输出权,同一优先级的TCP流和RDMA流带宽公平分配,在公平和高效之间达到了相对平衡。这种算法理论上融合了两种算法的优点,不仅可以使短流更加快速的通过交换机,对于长流也实现了更加合理的传输。
本实施例的有益效果包括如下说明:
对具有8个优先级队列的交换机进行了仿真实验,通过实验对短流、长流、平均流的传输性能进行测试。如下图2所示为使用不同调度方式进行数据包输出的模式下在不同负载情况下的两种类型的短流完成时间。图2-a为对数据流中TCP流统计的短流完成时间,图2-b为RDMA短流的完成时间,实验结果显示本实施例的方案在短流的流完成时间上提升较明显,相比较于对于短流传输不够友好的轮询调度算法,严格优先级调度通过将短流标记高优先级实现了时延敏感流的优先传输,而本实施例的方案由于引入了优先传输机制,在短流传输性能上略优于严格优先级调度,远优于轮询调度,之所以能优于严格优先级调度,是因为严格优先级调度中最高优先级中只能允许RDMA流通过,而本实施例的方案却能允许TCP流和RDMA流共享高优先级,充分利用了带宽资源,如果在某一种类型流量更多的数据中心应用场景中,本实施例的方案会比严格优先级调度更加灵活、性能更优。
如下图3所示为使用不同调度方式进行数据包输出的模式下在不同负载情况下的两种类型的长流完成时间。图3-a为对数据流中TCP流统计的流完成时间,图3-b为数据流中RDMA流统计的流完成时间,本实施例的方案对于长流的流完成时间提升不多,在低负载情况下介于两种传统算法之间,在高负载情况下不如轮询调度算法,但整体优于严格优先级调度算法,不过考虑到高优先级的时延敏感流对低优先级数据流输出权的抢占,长流的传输性能可以合理牺牲以换取短流的传输及时性。
如下图4所示为使用不同调度方式进行数据包输出的模式下在不同负载情况下的两种类型的平均流完成时间。图4-a为对数据流中TCP流统计的流完成时间,图4-b为数据流中RDMA流统计的流完成时间,综合来看本实施例的方案在整体的流完成时间上优于两种传统的流量调度算法,随着负载增加,本实施例的方案的性能更能体现出来,这主要得益于优先机制带来的短流快速传输和轮询机制带来的流量公平性,在一定程度上克服了两种传统算法的缺陷,在不同类型的流量调度上更加平衡、高效。
通过实验对两种流量的传输公平性进行测试,如下图5所示为不同调度方式下TCP流和RDMA流的流完成时间,可以体现出流量调度算法的调度公平性。图5-a为不同调度方式下短流的对比,图5-b为不同调度方式下长流的对比,图5-c为不同调度方式下平均流的对比。其中作为对比的流完成时间使用不同负载下的平均流完成时间,这里以RDMA流为标准绘制两种流量的平均流完成时间对比柱状图,从图中可以看出本实施例的方案在TCP流量和RDMA流量的平衡性上做的最好,其次是各个队列地位平等的轮询机制,而严格优先级调度在流量公平性上最差,这也是这种算法的特点决定的,由于优先级队列的分配无法做到对双方均匀,对于分配到奇数队列的TCP流相比较于RDMA流的传输劣势更大。本实施例的方案在流量公平性上设置和轮询调度相似,所以整体的性能接近于轮询调度,而在短流的调度上能更优于轮询调度。
另外还可以看出在不同的调度方式下TCP流的流完成时间都要高于RDMA流,这或许和RDMA采用RoCEv2协议使用UDP传输方式有关,由于网络规模较小,网络拥塞的概率更低,PFC流控触发的可能较小,所以RDMA流的传输速度很快,而由于在网络链路进行设置时引入了随机丢包的机制,这可能使具有确认应答、自动重传机制的TCP流需要更多的时间完成数据流的传输。
综上所述,本实施例的方案能够较为公平、高效地调度TCP流和RDMA流,同时对于对时延和吞吐有不同需求的流量提供针对性服务,相比较于两种传统流量调度算法在性能上有较大提升。
本发明所述数据中心网络TCP和RDMA混合流调度方法、系统及装置中,通过将TCP数据包和RDMA数据包按照各自的优先级分别缓存在不同的交换机队列中,并分别配置两类数据包所需的传输环境。在传输过程中,按照优先级由高到低的顺序依次传输各TCP数据包和各RDMA数据包,同一优先级内存储TCP数据包和RDMA数据包的两类队列按照轮询调度的方式传输。本发明能够适应TCP和RDMA混合流调度需求,有效利用带宽资源,较为公平、高效地调度TCP流和RDMA流,对于对时延和吞吐有不同需求的流量提供针对性服务。
与上述方法相应地,本发明还提供了一种数据中心网络TCP和RDMA混合流调度装置/系统,该装置/系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置/系统实现如前所述方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据中心网络TCP和RDMA混合流调度方法,其特征在于,所述方法在交换机上执行,该方法包括以下步骤:
数据包传输过程中,查询待输出的多个数据包的头部添加的流量类别和优先级标记字段,以区分TCP数据包和RDMA数据包的类型以及标记各数据包的优先级;
将各数据包按照所述流量类别和优先级标记字段记载的内容,按照优先级和类别将各数据包分配至多个交换机队列中,所述交换机队列分为多个优先级,每个优先级中包含第一类队列和第二类队列,各优先级的所述第一类队列用于缓存相应优先级的TCP数据包,各优先级的所述第二类队列用于缓存相应优先级的RDMA数据包;
按照设定规则传输各交换机队列中的TCP数据包和RDMA数据包,其中,所述设定规则包括:按照优先级由高到低的顺序依次传输各TCP数据包和各RDMA数据包,并且每个优先级内按照轮训调度的方式传输所述第一类队列中的TCP数据包和所述第二类队列中的RDMA数据包,其中,为各优先级内第二类队列的所述RDMA数据包配置无损传输环境。
2.根据权利要求1所述的数据中心网络TCP和RDMA混合流调度方法,其特征在于,查询待输出的多个数据包的头部添加的流量类别和优先级标记字段,包括:
采用设定数量个由小到大的奇数自然数标记TCP数据包的优先级和流量类别;采用所述设定数量个由小到大的偶数自然数标记RDMA数据包的优先级和流量类别。
3.根据权利要求1所述的数据中心网络TCP和RDMA混合流调度方法,其特征在于,所述交换机队列中各优先级的第二类队列采用PFC流量控制进行无损传输。
4.根据权利要求1所述的数据中心网络TCP和RDMA混合流调度方法,其特征在于,所述流量类别和优先级标记字段由相应数据包的源主机根据时延需求配置对应的优先级,所述优先级的数值与所述数据包的最大可接受时延呈反比。
5.根据权利要求1所述的数据中心网络TCP和RDMA混合流调度方法,其特征在于,为各交换机队列设置数据包传输任务数的第一上限值,若存在交换机队列中的数据包传输任务数大于等于所述第一上限值,则将后续要加入该交换机队列的数据包缓存在次一级优先级的交换机队列中等待传输。
6.根据权利要求1所述的数据中心网络TCP和RDMA混合流调度方法,其特征在于,为各优先级设置数据包传输时间的第二上限值,若存在优先级中的数据包传输时间大于等于所述第二上限值,则按照设定比例提高传输带宽资源直至相应优先级中的数据包传输完成。
7.根据权利要求1所述的数据中心网络TCP和RDMA混合流调度方法,其特征在于,将各数据包按照所述流量类别和优先级标记字段记载的内容,按照优先级和类别将各数据包分配至多个交换机队列中之前,还包括:
为各交换机队列设置剩余存储空间限值,若判断后续要加入指定交换机队列的数据包在写入后,所述指定交换机队列的剩余存储空间的容量小于相应的剩余存储空间限值,则将该数据包预存储在缓存空间中。
8.一种数据中心网络TCP和RDMA混合流调度系统,其特征在于,包括:
源主机,用于生成数据包,并根据数据要的时延需求配置优先级,根据所述数据包类型和所述优先级在所述数据包的头部添加流量类别和优先级标记字段;
交换机,用于执行如权利要求1至7任意一项所述数据中心网络TCP和RDMA混合流调度方法。
9.一种数据中心网络TCP和RDMA混合流调度装置,包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145016.2A CN115695578A (zh) | 2022-09-20 | 2022-09-20 | 一种数据中心网络tcp和rdma混合流调度方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145016.2A CN115695578A (zh) | 2022-09-20 | 2022-09-20 | 一种数据中心网络tcp和rdma混合流调度方法、系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695578A true CN115695578A (zh) | 2023-02-03 |
Family
ID=85062925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145016.2A Pending CN115695578A (zh) | 2022-09-20 | 2022-09-20 | 一种数据中心网络tcp和rdma混合流调度方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695578A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436869A (zh) * | 2023-04-25 | 2023-07-14 | 清华大学 | 通用的rdma流级优先级调度方法、装置、设备及介质 |
-
2022
- 2022-09-20 CN CN202211145016.2A patent/CN115695578A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436869A (zh) * | 2023-04-25 | 2023-07-14 | 清华大学 | 通用的rdma流级优先级调度方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI477127B (zh) | 用於排程封包傳輸的電腦實施方法、機器可讀媒體和客戶端裝置 | |
Munir et al. | Friends, not foes: synthesizing existing transport strategies for data center networks | |
CN104579962A (zh) | 一种区分不同报文的QoS策略的方法及装置 | |
US7209489B1 (en) | Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing | |
CN115695578A (zh) | 一种数据中心网络tcp和rdma混合流调度方法、系统及装置 | |
US7869366B1 (en) | Application-aware rate control | |
JP2014179838A (ja) | 通信装置、およびプログラム | |
US11979476B2 (en) | High performance connection scheduler | |
Chen et al. | On meeting deadlines in datacenter networks | |
Alanazi et al. | Fair packet enqueueing and marking in multi-queue datacenter networks | |
Horng et al. | An effective approach to adaptive bandwidth allocation with QoS enhanced on IP networks | |
CN116865915A (zh) | 数据包重传方法和装置、存储介质及电子装置 | |
US9325640B2 (en) | Wireless network device buffers | |
KR20070062407A (ko) | 실시간성 지원을 위한 커널에서의 패킷 처리 방법 및 장치 |
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 |