存传一体的RDMA数据中心拥塞控制方法

文档序号:37056999发布日期:2024-02-20 21:03阅读:21来源:国知局
本发明属于计算机应用,具体涉及存传一体的rdma数据中心拥塞控制方法。
背景技术
::1、 高带宽、低延迟是网络应用对数据中心的基本需求。然而,随着数据中心流量规模不断增大,在极短时间内传输大量数据传输极具挑战。传统的tcp协议已经成为现代数据中心发展的瓶颈。传统的tcp协议设计初衷是为了以毫秒级的时延将数据包由网络一端传输至另一端,难以满足当前应用对网络微秒级的数据传输需求。具体来说,tcp/ip 协议在数据包处理过程中,要经过操作系统及其他软件层,将数据在系统内存、处理器缓存和网络控制器缓存间来回复制。上述操作给服务器的cpu 和内存造成了沉重的负担,并加重了网络带宽、处理器速度与内存带宽三者间的“不匹配性”,引起了较长的网络延迟。当下,越来越多的数据中心正在采用rdma取代tcp。得益于零拷贝网络和内核旁路机制,rdma可以实现高吞吐量和低延迟的网络性能。与使用传统模式发送、接收数据相比,rdma给数据中心的数据传输带来了更低的传输时延、更高的吞吐量、超低的cpu和内存资源占用率等特性。2、目前,rdma数据中心常见的拥塞控制协议,如dcqcn、timely、hpcc等,由于没有考虑端侧的拥塞控制,难以将接收端网卡和ssd的拥塞状况准确反映到发送端,并且无法根据端侧网卡和ssd的拥塞状况做出及时的调整。gimbal算法在端侧实现了基于延迟的ssd拥塞控制算法、ssd写入成本的动态估计、以virtual slots为粒度运行的公平调度和端到端的的基于credit流量控制。可以有效提高吞吐量并降低尾延。但是,gimbal算法适用于定制硬件,普通数据中心的环境对gimbal不适用, 因此,需要一种能够在普通商用网卡上运行的、对端侧拥塞进行有效处理的拥塞控制方法。技术实现思路1、本发明的目的是为rdma数据中心提供一种存传一体的拥塞控制方法,通过综合考虑了网络、网卡、ssd三个可能的拥塞点。通过融合三方的拥塞信息,对发送端进行拥塞反馈。有效解决网卡与ssd直接速率不匹配,容易堆积并反压网卡、现有端侧拥塞处理方案无法协同处理网络侧拥塞等问题。2、本发明是通过以下技术方案来实现的,存传一体的rdma数据中心拥塞控制方法,所述方法包括如下步骤:3、步骤1:发送端发送数据包,数据包在网络中通过拥塞端口时,会被交换机标记上ecn;接收端接收数据包时,记录ecn标志位,同时监听接收端网卡的缓存占用nic buffer,检测接收端网卡侧拥塞程度,更新接收端网卡拥塞标志位;4、步骤2:为了快速响应拥塞,接收端通过跟踪单位时间内接收端网卡向ssd发送报文的数量,预测ssd可能发生的拥塞,更新ssd标志位;5、步骤3:为了在快速响应拥塞的同时保证拥塞反馈的准确性,接收端使用写盘的ewma时延实时刻画ssd侧的拥塞程度,更新ssd标志位;6、步骤4:融合标志位和标志位,如果步骤2中或步骤3中检测结果为拥塞,则ssd侧存在拥塞,否则ssd侧不存在拥塞,更新ssd拥塞标志位;根据步骤2标志位和步骤3标志位的结果更新ssd拥塞标志位,步骤2或步骤3检测出ssd拥塞,则将ssd拥塞标志位置为1,否则将ssd拥塞标志位置为0;7、步骤5:接收端融合ecn标志位、接收端网卡拥塞标志位、ssd 拥塞标志位三者的拥塞信息,更新反馈信号ack中的拥塞标志位,并反馈给发送端;8、步骤6:发送端收到带有拥塞标志的反馈信号ack后,更新速率变量rate,并根据速率变量rate调整窗口大小,控制发送端的发送速率。9、进一步地,步骤1所述的接收端接收数据包时,记录ecn标志位,同时监听接收端网卡缓存占用nic buffer,检测接收端网卡侧拥塞程度,更新接收端网卡拥塞标志位;具体如下:10、步骤1-1:对接收端网卡缓存预先设定阈值kmin、kmax,当接收端网卡收到数据包落盘反馈后,记录ecn标志位,同时监听接收端网卡的缓存占用nic buffer;11、步骤1-2:当接收端网卡的缓存占用nic buffer、阈值kmin、kmax之间满足nicbuffer <kmin时,表示不存在拥塞,将接收端网卡拥塞标记位置为0;12、步骤1-3:当接收端网卡的缓存占用nic buffer、阈值kmin、kmax之间满足kmax≥nic buffer ≥ kmin时,根据接收端网卡的缓存占用nic buffer情况计算梯度概率pct,并以梯度概率pct更新接收端网卡拥塞标记位;设置一个概率指数,由以下公式计算概率pct:13、;14、由接收端生成一个0-1之间的随机数n,当梯度概率pct≥n时,将接收端网卡拥塞标记置为1;当梯度概率pct<n时,将接收端网卡拥塞标记置为0;15、步骤1-4:当接收端网卡的缓存占用nic buffer、阈值kmin, kmax之间满足nicbuffer >kmax时,表示存在拥塞,直接将接收端网卡拥塞标记位置为1。16、进一步地,步骤2所述的接收端通过跟踪单位时间内接收端网卡向ssd发送报文的数量,检测拥塞程度,更新ssd标志位,具体如下:17、步骤2-1:接收端网卡为挂载的每个ssd维护一个报文计数器data,记录单位时间内接收端网卡向对应ssd发送的数据量,当接收端网卡向ssd发送一个数据包时,使用如下方式更新报文计数器:18、;19、其中,代表当前发送的数据包的大小;为当前的报文计数器,为原本的报文计数器;20、步骤2-2:每隔时间t,接收端检查报文计数器data,设定报文计数器data单位时间t内接收端网卡向ssd内写入的数据量的阈值,如果报文计数器data和阈值之间满足 data,代表接收端网卡单位时间内向ssd发送的报文过多,存在拥堵,则将ssd标志位置为1,否则将ssd标志位置为0;并使用如下公式重置所有报文计数器计数:21、。22、进一步地,步骤3所述的接收端使用写盘的ewma时延实时刻画ssd侧的拥塞程度,更新ssd标志位,具体如下:23、步骤3-1:每个接收端网卡维护一个流表flowtable,流表flowtable记录接收端网卡发送的每个数据包的源ip地址sip、目的端口号port和发送数据包的时刻sendtime,接收端网卡向ssd发送数据包后,使用sendtime属性记录当前时间戳,具体为:24、<mi>flowtable[sip,port].sendtime=</mi><mi>currenttimestamp</mi>;25、步骤3-2:接收端网卡收到ssd发来的落盘反馈后,再次获取当前时间戳,并根据当前时间戳和流表flowtable计算写盘时延latency,具体为:26、<mi>latency=currenttimestamp</mi><mi>-</mi><mi>flowtable[sip,port].sendtime</mi>;27、步骤3-3:为了过滤写盘时延latency计算的不准确性和瞬态抖动,使用写盘时延latency和平滑系数更新写盘的ewma时延,具体操作如下:28、;29、其中,表示上一次的写盘的ewma时延,表示当前写盘的ewma时延;30、步骤3-4:设定时延阈值,如果与阈值之间满足,存在拥堵,则将ssd标志位置为1;否则将ssd标志位置为0。31、进一步地,步骤5所述的接收端融合ecn标志位、接收端网卡拥塞标志位、ssd拥塞标志位三者的拥塞信息,更新反馈信号ack中的拥塞标志位,并反馈给发送端,具体如下:32、步骤5-1:接收端收到数据包的落盘信号后,生成向发送端的反馈信号ack;33、步骤5-2:如果接收端数据包的ecn标志位、网卡拥塞标志位和ssd拥塞标志位满足或或,则将ack中的拥塞标志位置为1,否则将拥塞标志位置为0;34、步骤5-3:接收端向发送端发送带有拥塞标志位的ack,并将接收端网卡拥塞标志位和ssd拥塞标志位重置为0。35、进一步地,步骤6所述的发送端收到带有拥塞标志的反馈信号ack后,更新速率变量rate,并根据速率变量rate调整窗口大小,控制发送端的发送速率,具体如下:36、步骤6-1:开始时,默认以链路带宽c作为速率变量rate的初始值,并根据当前网络拓扑的basertt设置初始窗口大小,basertt定义为当前没有遇到任何拥塞时数据包的rtt,在数据中心网络中,basertt看成是一个定值,具体为:37、;38、步骤6-2:发送端收到带有拥塞标志的ack后,使用dcqcn更新速率变量rate,并更新窗口值win,更新窗口值的公式如下:39、。40、发送端收到带有拥塞标志的ack后,为避免过度反应,发送端在n us的周期内只会对同一个数据流的一个拥塞标志做出反应。41、上述是从针对rdma数据中心中端网协同拥塞控制关键技术问题展开研究,为解决端网速率不匹配的问题提出存传一体的数据中心拥塞控制方法。网卡与ssd间带宽的不匹配,将导致数据在网卡及ssd中进行堆积,从而反压网络,导致数据传输速度慢,处理效率低等问题。目前绝大部分研究工作主要关注如何处理数据在网络中的拥塞,无法有效处理网卡与ssd侧数据的堆积问题。42、本发明具有以下有益效果:43、(1)本发明将端侧与网络侧的拥塞情况协同考虑,设计了多方拥塞信号融合与处理方案,可以同时兼顾网络、网卡、ssd可能存在的拥塞。通过多信号融合与处理,可有效评估端侧和网络侧的拥塞状态,并将细粒度的拥塞状态反馈至发送端,由发送端进行合理的速率调节。44、(2)通过跟踪单位时间内接收端网卡向ssd发送报文的数量和使用写盘的ewma时延实时刻画ssd侧的拥塞程度,使用主动预测和被动检测两种方式共同刻画ssd的拥塞状态,可以快速高效地获得ssd中的拥塞信息。解决了ssd带宽动态变化且数据堆积细节不可知引起的端侧拥塞状态难感知的问题。45、(3)对网卡缓存状态进行监听,并将其作为拥塞信号之一进行拥塞控制方法设计,大幅降低网卡缓存的空间占用率,使设计的拥塞控制方案可有效部署于数据中心现有的基础设施上。46、(4)使用窗口控制链路中inflight数据包数量,可以加快发送端速率收敛,快速消除端侧和网络侧存在的拥塞。并且可以有效容忍因拥塞点排队延迟而导致的反馈延迟。47、(5)拥塞反馈信号由ack直接携带至发送端,不需要额外的拥塞反馈报文,节省了网络开支。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1