首页> 中国专利> 一种基于预测的交换机PFC控制方法及控制系统

一种基于预测的交换机PFC控制方法及控制系统

摘要

本发明提供了一种基于预测的交换机PFC控制方法及控制系统。所述基于预测的交换机PFC控制方法包括如下步骤:监测交换机端口的出队列,判断出队列的长度是否超过阈值,如果出队列的长度超过阈值,预测交换机需要发送PFC暂停报文;如果预测交换机需要发送PFC暂停报文,预测需要向哪些端口发送PFC暂停报文,输出应发送PFC暂停报文的“入口端号+优先级”集合,记作集合S;在所述集合S中,分别对每个“入口端号+优先级”计算PFC暂停时间;根据PFC暂停时间构建并输出“入口端号+优先级+暂停时间”集合,记作集合T,交换机遍历所述集合T,将每一“入口端号+优先级+暂停时间”中的优先级和暂停时间填入到PFC暂停报文中,并通过端口发送出去。

著录项

  • 公开/公告号CN107948103A

    专利类型发明专利

  • 公开/公告日2018-04-20

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN201711224754.5

  • 发明设计人 杨杰;李波;田臣;王炜;

    申请日2017-11-29

  • 分类号

  • 代理机构南京钟山专利代理有限公司;

  • 代理人戴朝荣

  • 地址 210093 江苏省南京市鼓楼区汉口路22号

  • 入库时间 2023-06-19 05:06:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-30

    授权

    授权

  • 2018-05-15

    实质审查的生效 IPC(主分类):H04L12/935 申请日:20171129

    实质审查的生效

  • 2018-04-20

    公开

    公开

说明书

技术领域

本发明属于涉及一种基于预测的交换机PFC控制方法及控制系统。

背景技术

远程直接内存访问(RDMA,Remote Direct Memory Access)是一个相对比较成熟的技术,在高性能计算领域已经广泛应用。由于RDMA低时延,高带宽和低CPU占用率的特性,近些年数据中心也开始采用RDMA技术加速业务的网络传输速度。高性能计算领域中广泛应用的RDMA技术方案是InfiniBand,目前数据中心中流行的方案是RoCEv2(RDMA OverConverged Ethernet v2),其将InfiniBand的网络层和链路层协议替换为以太网对应的协议,InfiniBand的传输层和RDMA应用API保持不变,旧有的RDMA代码可以方便地移植到RoCEv2环境中。

与传统的TCP/IP网络不同,RDMA技术要求网络是无损的,即网络传输中不允许出现因交换机缓冲溢出而丢包。以太网协议中,目前使用基于优先级的流控(PFC,Priority-based Flow Control)协议保证网络是无损的。PFC是一个逐跳起作用的二层网络协议,交换机会检测每个端口每个优先级的入队列长度,在长度超过设定的阈值Xoff后,交换机会通过该端口向上游端口发送PFC暂停报文,上游端口收到该报文后立刻停止发送该优先级的数据;当入队列长度低于设定的阈值Xon后,交换机可以向上游端口发送PFC恢复报文,上游端口收到恢复报文后,立刻恢复数据发送。PFC是暂停端口中某个优先级的数据发送,而不是端口的数据发送。

但是,PFC的引入会导致以下问题:由于PFC的流控粒度是针对优先级的,这是一个比较粗的控制粒度(交换机每个端口只支持8个优先级),PFC会导致流的不公平和队头阻塞(Head-of-line blocking)等问题。为解决此问题,目前主流的方法是采用DCQCN(DataCenter QCN)拥塞控制机制。DCQCN采用RED-ECN(Random Early Detection-ExplicitCongestion Notification)作为拥塞信号产生方式,即交换机出队列长度在超过阈值后,交换机根据队列长度按照一定的概率对报文打上ECN拥塞标志,队列长度越长,打标的概率越大。接收方在收到带有ECN标记的报文后,会产生信令报文CNP(CongestionNotification Packet)通知数据发送方降速。发送方如果在一段时间内没有继续收到CNP报文,则开始主动恢复发送速度。

DCQCN作为端到端拥塞控制机制,从拥塞信号产生,到接收端相应拥塞信号,再到源端收到CNP报文降速,要经历一个往返时延(RTT,Round Trip Time),在某些场景下,DCQCN的收敛速度会比较慢,尤其是incast情形(多台主机同时向一台主机发送数据)。收敛速度变慢会影响交换机端口的出队列拥塞程度增加,从而导致流经该出端口的报文时延变长。在时延敏感的应用中,这样的情况是几乎不能忍受的。

发明内容

本发明的目的在于针对现有技术的缺陷,提供一种基于预测的交换机PFC控制方法及控制系统,通过实时监控气象文件数据源,自动形成解析任务,通过适配器调用分布式解析组件,从而达到文件高时效、高质量入库功能,进而高效准确的进行风能资源的评估。

本发明的技术方案如下:一种基于预测的交换机PFC控制方法包括如下步骤:一、监测交换机每个端口的每个出队列,判断出队列的长度是否超过阈值,二、如果所述出队列的长度超过阈值,则预测交换机是否需要发送PFC暂停报文;三、如果预测到交换机需要发送PFC暂停报文,则预测需要向哪些端口发送PFC暂停报文,并根据端口号和报文的优先级信息输出应发送PFC暂停报文的“入口端号+优先级”集合,记作集合S;四、在所述集合S中,分别对对集合S内每个“入口端号+优先级”元素计算PFC暂停时间;五、根据计算得到的PFC暂停时间构建并输出“入口端号+优先级+暂停时间”集合,记作集合T,交换机遍历所述集合T,将集合T内每一“入口端号+优先级+暂停时间”元素中的优先级和暂停时间填入到PFC暂停报文中,并通过对应的端口发送出去。

优选地,在步骤二中,如果所述出队列的长度超过阈值,则,统计交换机所有端口所有入队列的速度总和Incrementtotal,通过公式预测交换机缓冲空间的耗尽时间是否小于设定阈值,如果交换机缓冲空间的耗尽时间小于设定阈值,则预测交换机需要发送PFC暂停报文;反之,则预测交换机不需要发送PFC暂停报文。

优选地,具体包括如下步骤:将出队列中的报文按照“入口端号+优先级”的来源方式统计;随机选择出队列中的报文,找到该报文所属的入口端号和优先级,如果入口端号对应的优先级队列的实时接收的增长速率大于设定阈值,则将该所述入口端号加入到待暂停集合中,输出应发送PFC暂停报文的“入口端号+优先级”集合,记作集合S。

优选地,在步骤四中,遍历集合S,分别对每一个“入口端号+优先级”按照公式:

计算得到暂停时间time[port][priority]。

优选地,交换机每个端口的每个优先级均设置速率计数器,用于实时显示当前优先级的入队列长度变化速率。

一种基于预测的交换机PFC控制系统包括:拥塞监测模块,监测交换机每个端口的每个出队列,判断出队列的长度是否超过阈值,PFC暂停报文预测模块,用于在接收到实时拥塞监测模块传递的拥塞信号后,预测交换机是否需要发送PFC暂停报文;端口选择模块,用于在接收到实时PFC暂停报文预测模块的预测结果后,预测需要向哪些端口发送PFC暂停报文,并输出应发送PFC暂停报文的“入口端号+优先级”集合,并记作集合S;PFC暂停时间计算模块,用于分别对所述集合S中每个“入口端号+优先级”计算PFC最优暂停时间,PFC暂停报文发送模块,用于将所述PFC暂停时间计算模块得到的最优暂停时间添加到集合S中输出“入口端号+优先级+暂停时间”集合,并记作集合T,交换机遍历所述集合T,将每一“入口端号+优先级+暂停时间”中的优先级和暂停时间填入到PFC暂停报文中,并通过对应的端口发送出去。

优选地,如果所述出队列的长度超过阈值,则,所述PFC暂停报文预测模块统计交换机所有端口所有入队列的速度总和Incrementtotal,并通过公式

预测交换机缓冲空间的耗尽时间是否小于设定阈值,如果交换机缓冲空间的耗尽时间小于设定阈值,则预测交换机需要发送PFC暂停报文;反之,则预测交换机不需要发送PFC暂停报文,其中,switch_spaceleft为交换机剩余缓冲空间,Incrementtotal代表交换机缓冲空间的消耗速度。

优选地,所述端口选择模块将出队列中的报文按照“入口端号+优先级”的来源方式统计,并随机选择出队列中的报文,找到该报文所属的入口端号和优先级,如果入口端号对应的优先级队列的实时接收的增长速率大于设定阈值,则将该所述入口端号加入到待暂停集合中,输出基于“入口端号+优先级”的待暂停集合,记作集合S。

优选地,所述PFC暂停时间计算模块遍历集合S,分别对每一个“入口端号+优先级”按照公式:

计算得到暂停时间time[port][priority]其中,packets[port][priority]为每个端口每个优先级的报文数量,increment[port][priority]为每个端口每个优先级入队列增长速率,Transmissionspeed表示出队列对应端口的线速度。

本发明提供的技术方案具有如下有益效果:

所述基于预测的交换机PFC控制方法及控制系统在拥塞严重的情况下提前发送PFC暂停报文,将交换机缓冲占用控制在较低的水平。相比标准PFC方法,基于预测的交换机PFC控制方法在任意场景下,甚至对于incast数量很多的情景,都可以有效地控制交换机的缓冲空间占用,从而保证RDMA网络中较低的尾时延,而且由于交换机的缓冲占用减少,DCQCN速度收敛周期减少,可以实现更快的速度收敛。

附图说明

图1为本发明提供的基于预测的交换机PFC控制系统模块图;

图2为本发明提供的基于预测的交换机PFC控制预测是否发送PFC暂停报文的伪代码;

图3为本发明提供的基于预测的交换机PFC控制选择发送PFC暂停报文的端口的伪代码;

图4为本发明提供的基于预测的交换机PFC控制计算端口暂停时间的伪代码;

图5为NS3仿真拓扑图;

图6为NS3仿真中出队列长度变化图:

图7为NS3仿真中尾时延对比图;

图8为NS3仿真中PFC暂停时间和暂停报文数量对比图;

图9为NS3仿真中不同incast程度下的吞吐量对比图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。

如图1所示,本发明实施例提供的基于预测的交换机PFC控制系统包括拥塞监测模块101、PFC暂停报文预测模块102、端口选择模块103、PFC暂停时间计算模块104和PFC暂停报文发送模块105。所述拥塞监测模块101的输出信号分别传递给所述PFC暂停报文预测模块102、所述端口选择模块103和所述PFC暂停时间计算模块104;而且,所述PFC暂停报文预测模块102、所述端口选择模块103、所述PFC暂停时间计算模块104和所述PFC暂停报文发送模块105依次通信连接,上一模块的输出作为下一模块的输入。

其中,所述拥塞监测模块101监测交换机每个端口的每个出队列,并通过判断出队列的长度是否超过阈值向其他模块传递拥塞信号。

具体的,设定RED-ECN针对每个出队列有两个可设定的阈值,Kmin和Kmax。当交换机端口的出队列长度在Kmin和Kmax之间时,交换机以一定概率对报文打上ECN标记,出队列长度越接近Kmax,交换机打标的概率越大;当出队列长度超过Kmax时,所有报文都会被打上ECN标记。

所述拥塞监测模块101依靠出队列的长度判断拥塞程度,当出队列Q的长度超过Kmax时,拥塞监测模块101则输出队列Q发生拥塞。这样的判断条件是为了保证DCQCN拥塞控制机制可以正常工作,当队列长度在Kmin和Kmax之间时,交换机处于较小的拥塞程度,可以依靠DCQCN控制出队列长度的增长;队列长度超过Kmax后,表明DCQCN已经很难快速限制源端数据发送,需要P-PFC控制队列长度增长。

需要说明的是,所述拥塞监测模块101需要监测所有开启P-PFC的出队列的长度变化情况。而且,交换机每个端口的每个优先级均设置速率计数器,用于实时显示当前优先级的入队列长度变化速率。

所述PFC暂停报文预测模块102用于在接收到实时拥塞监测模块传递的拥塞信号后,预测交换机是否需要发送PFC暂停报文。

具体的,如果所述出队列的长度超过阈值,则,所述PFC暂停报文预测模块102统计交换机所有端口所有入队列的速度总和Incrementtotal,并通过公式

预测交换机缓冲空间的耗尽时间是否小于设定阈值,如果交换机缓冲空间的耗尽时间小于设定阈值,则预测交换机需要发送PFC暂停报文;反之,则预测交换机不需要发送PFC暂停报文。

以图2所示的伪代码为例,以1us的周期统计交换机所有端口所有优先级入队列的增长速度,得到increment[port][priority]。交换机每个入队列要设置一个队列增长计数器,increment数组的数值从队列增长计数器获取。伪代码第1-3行是累加每个端口每个优先级入队列的增长速度,得到Incrementtotal,这一数据代表着交换机缓冲空间的消耗速度。

DCQCN主机速度收敛需要一个往返时延,在一段时间内主机发送数据速度维持不变,从而可以假设交换机缓冲空间消耗速度不变,最终,利用交换机剩余缓冲空间switch_spaceleft与Incrementtotal相除,得到剩余时间remainingtime,即预测交换机缓冲空间耗尽需要的时间。伪代码第5行引入阈值T,当剩余时间remainingtime小于T时,该模块输出发送PFC暂停报文的信号给其他模块,否则退出当前计算。

实际上,P-PFC相比标准PFC提前一段时间发送PFC报文,阈值T值愈大,提前的时间越多,另一方面,由于提前发送PFC暂停报文,交换机的缓冲空间占用可以维持在较低的水平。

所述端口选择模块103用于在接收到实时PFC暂停报文预测模块的预测结果后,预测需要向哪些端口发送PFC暂停报文,并根据端口号和报文的优先级信息输出应发送PFC暂停报文的“入口端号+优先级”集合,并记作集合S。需要说明的是,在集合S中,每个元素的组成是“入口端号号:优先级”,即每个元素包含两个数值:入口端号号和优先级。

具体的,所述端口选择模块103将出队列中的报文按照“入口端号+优先级”的来源方式统计,并随机选择出队列中的报文,找到该报文所属的入口端号和优先级,如果入口端号对应的优先级队列的实时接收的增长速率大于设定阈值,则将该所述入口端号加入到待暂停集合中,输出应发送PFC暂停报文的“入口端号+优先级”集合,记作集合S。

以图3所示的方法伪代码为例,该方法的输入是:拥塞监测模块101的输出、出队列Q及出队列Q中报文组成比例fraction数组,即将出队列Q中的报文按照来源“端口+优先级”统计,fraction[port][priority]表示从端口port的优先级priority进来的报文数量占出队列中报文总数量的比例;每个入口端号每个优先级的队列增长速度increment[port][priority];该方法的输出是:是否应发送PFC暂停报文的“port+priority”待暂停集合。

并且,在图3所示的伪代码中,首先创建空的“port+priority”集合S,然后随机选择出队列Q中的报文,找到该报文所属的port和priority,如果increment[port][priority]大于阈值I并且“port+priority”不在集合S中,则标记此“port+priority”加入到集合S中,同时将fraction[port][priority]累加到fractiontotal变量中。图3所示伪代码中主要是while循环,循环的结束条件是fractiontotal大于或等于阈值R。循环结束后,将集合S输出,传递给所述PFC暂停时间计算模块104。阈值I的设置是为了找到对出队列Q队列长度增长具有主要影响的入队列,并向其发送PFC暂停报文,避免伤及带宽较小的流,从而影响整体服务质量。阈值R决定了算法的终止条件,当所有选中的报文比例加起来超过R时,算法终止。

所述PFC暂停时间计算模块104用于分别对所述集合S中每个“入口端号+优先级”元素计算PFC最优暂停时间,,保证交换机缓冲空间较小的同时不造成链路空闲,浪费带宽。

具体的,所述PFC暂停时间计算模块104遍历集合S,分别对集合S中每一个“入口端号+优先级”元素按照公式:

计算得到暂停时间time[port][priority]。

以图4所示的伪代码为例,PFC报文中可以指定暂停时间,交换机端口收到PFC暂停报文后,立刻停止数据发送,恢复发送需要满足一下任意一种条件:第一种是收到PFC恢复报文,第二种是PFC暂停报文中指定的暂停时间超时。本模块104利用第二种条件控制端口数据发送。所述PFC暂停时间计算模块104利用第二种条件控制端口数据发送。

并且,在图4所示的伪代码中,所述PFC暂停时间计算模块104的输入是:所述端口选择模块103的输出“port+priority”集合S、出队列Q中报文的组成成分、及每个端口每个优先级入队列增长速率increment[port][priority]。出队列Q中报文的组成成分即来自端口port优先级priority的报文数量packets[port][priority]。

而且,所述PFC暂停时间计算模块104的核心思想是PFC暂停时间应与该优先级的入队列增长速率以及该优先级在交换机内的报文数量有关。暂停时间的计算由两部分组成:

第一部分表示交换机出队列清空接收自端口port优先级priority的报文需要的时间,其中,Transmissionspeed表示出队列对应端口的线速度;PFC暂停报文发送到上游端口到不再接收到上游端口的数据需要一定时间;第二部分表示接收并转发这段时间内收到的数据报文需要的时间。

所述PFC暂停报文发送模块105用于将所述PFC暂停时间计算模块得到的最优暂停时间添加到集合S中输出“入口端号+优先级+暂停时间”集合,并记作集合T,交换机遍历所述集合T,将每一“入口端号+优先级+暂停时间”中的优先级和暂停时间填入到PFC暂停报文中,并通过对应的端口发送出去。应当理解,同一个端口port同一优先级priority,在暂停时间time内交换机不会继续发送PFC暂停报文。需要说明的是,在集合T中,每个元素是“入口端号号:优先级:暂停时间”。

一种基于预测的交换机PFC控制方法,包括如下步骤:

一、监测交换机每个端口的每个出队列,判断出队列的长度是否超过阈值,

二、如果所述出队列的长度超过阈值,则预测交换机是否需要发送PFC暂停报文;

三、如果预测到交换机需要发送PFC暂停报文,则预测需要向哪些端口发送PFC暂停报文,并根据端口号和报文的优先级信息输出应发送PFC暂停报文的“入口端号+优先级”集合,记作集合S;

四、在所述集合S中,分别对集合S内每个“入口端号+优先级”元素计算PFC暂停时间;

五、根据计算得到的PFC暂停时间构建并输出“入口端号+优先级+暂停时间”集合,记作集合T,交换机遍历所述集合T,将集合T内每一“入口端号+优先级+暂停时间”元素中的优先级和暂停时间填入到PFC暂停报文中,并通过对应的端口发送出去。

而且,交换机每个端口的每个优先级均设置速率计数器,用于实时显示当前优先级的入队列长度变化速率。

需要说明的是,在步骤二中,如果所述出队列的长度超过阈值,则,统计交换机所有端口所有入队列的速度总和Incrementtotal,通过公式预测交换机缓冲空间的耗尽时间是否小于设定阈值;如果交换机缓冲空间的耗尽时间小于设定阈值,则预测交换机需要发送PFC暂停报文;反之,则预测交换机不需要发送PFC暂停报文。

在步骤三中,具体包括如下步骤:

将出队列中的报文按照“入口端号+优先级”的来源方式统计;

随机选择出队列中的报文,找到该报文所属的入口端号和优先级,如果入口端号对应的优先级队列的实时接收的增长速率大于设定阈值,则将该所述入口端号加入到待暂停集合中,输出应发送PFC暂停报文的“入口端号+优先级”集合,记作集合S。

在步骤四中,遍历集合S,分别对每一个“入口端号+优先级”按照公式:

计算得到暂停时间time[port][priority]。

将本发明实施例提供的基于预测的交换机PFC控制方法(以下简称为:P-PFC方法)在NS3(Network Simulator 3)上进行仿真,并验证其有益效果。

具体仿真过程如下:仿真拓扑如图5所示,N:1的incast情景,N台主机通过交换机SW向服务器S发送数据,每条链路速度为40Gbps,链路延迟为1us,交换机的共享缓存为4MB,报文的大小均为1KB。

仿真从三个方面验证了P-PFC优于标准PFC协议:

1、P-PFC的交换机缓冲空间占用和网络的尾时延比标准PFC低;

2、P-PFC总的停止时间与标准PFC相当,暂停报文数量比标准PFC少;

3、P-PFC与DCQCN拥塞控制机制结合,不会对DCQCN产生副作用。

其中,RDMA流以线速启动,多条流以线速启动,同时向同一个目的端口发送数据,所以incast是网络拥塞最严重的情景,它能更好地测试算法的有效性。具体地,仿真中采用的参数下表所示:

参数仿真值T200usI90%R1

仿真中,P-PFC方法结合DCQCN拥塞控制机制,仿真结果图6所示。在16:1incast情景下,DCQCN采用P-PFC方法出队列长度最多为1002KB,采用PFC方法时,出队列长度可以达到交换机设置的上限4MB,P-PFC方法的最大长度为PFC方法的1/4。通过时间轴也可以看到,P-PFC方法可以更快地让出队列长度降为0KB左右,意味着P-PFC方法可以辅助DCQCN实现更快地速度收敛,相比PFC,收敛时间减少50%。

图7是在16:1incast情景下,DCQCN结合P-PFC和PFC的网络尾时延对比图。尾时延是指网络中报文的最大时延。图7中可以看到,P-PFC的尾时延只有PFC尾时延的1/4,这部分优势得益于P-PFC可以有效地控制交换机出队列长度。这个仿真表明了P-PFC可以极大地降低尾时延,为RDMA网络提供较低的时延保证。

图8统计了DCQCN结合P-PFC和PFC在incast情景下,从网络拥塞期到各主机速度收敛均衡期间的PFC暂停报文数量和PFC总的暂停时间。图8(a)中可以看到P-PFC暂停报文数量要远小于PFC,这一点得益于P-PFC提前预测到严重拥塞产生,提前发送较长时间的PFC暂停报文控制上游端口的数据发送,而标准PFC算法是在队列缓冲空间即将耗尽的时候时候发送PFC暂停报文,会出现队列的长度频繁地在PFC阈值Xon和Xoff之间抖动,导致PFC报文数量增加。图8(b)中可以看到,P-PFC总的暂停时间和PFC相当,没有造成更多时间的端口暂停,表明了P-PFC方法相比PFC,不会对网络吞吐量造成额外影响。

图9是在不同incast情景下,DCQCN结合P-PFC和PFC的平均吞吐量图。图中可以看到,在不用程度的拥塞状态下,P-PFC在平均吞吐量上与PFC相同,说明P-PFC不影响DCQCN拥塞控制机制正常运行,不会对网络产生副作用。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号