队列调度方法和装置与流程

文档序号:13914555阅读:289来源:国知局

本发明涉及互联网技术领域,尤其涉及一种队列调度方法和装置。



背景技术:

在尽力而为的网络中,队列调度是实现区分服务的基础,wrr(weightedroundrobin,加权轮询)是一种支持区分服务的队列调度方法。在wrr队列调度中,分类器根据数据报文的优先级进行分类,根据分类设置相应的wrr队列和固定的队列权值,不同优先级的数据包进入对应的wrr队列,每次轮询按照设置的队列权值依次进行调度。这种调度方式具有一定的公平性,每一种优先级的数据报文都得到一定的服务,高优先级的业务质量通过设定较大的权值提供了一定的保证。

在wrr队列调度中,根据业务的保证要求所需要的预期带宽设定固定的队列权值,当某个高优先级的业务有突发需求时,权值不能根据业务需要实时调整,仍然采用原来设定的权值进行调度,就会出现丢包或延时过大的现象,高优先级业务的质量无法保障。

现有的加权轮询队列调度方法在实现差异化调度时,设置固定的队列权值进行调度,无法满足高优先级业务的突发需求。



技术实现要素:

本发明要解决的一个技术问题是提供一种能够满足业务突发需求的队列调度方法和装置。

根据本发明一方面,提出一种队列调度方法,包括:根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值,其中队列预期分配的带宽值根据队列的初始权值和链路输出带宽确定;若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值,其中,队列的权值动态调整因子根据业务策略确定;根据调整后的队列权值进行队列调度。

进一步地,队列的权值动态调整因子根据业务策略确定包括:队列的优先级越高,队列的权值动态调整因子越大。

进一步地,根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值包括:判断数据报文进入队列的速率是否大于队列预期分配的带宽值;若数据报文进入队列的速率大于队列预期分配的带宽值,则需要调整队列的初始权值,否则,不需要对队列的初始权值进行调整。

进一步地,根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值包括:根据数据报文进入队列的速率、链路输出带宽、队列的初始权值确定队列实际需要的带宽值;根据队列实际需要的带宽值与队列预期分配的带宽值之间的差值乘以队列的权值动态调整因子作为队列的初始权值的补偿值,从而得到调整后的队列权值。

进一步地,该方法还包括:若需要调整队列的初始权值,则根据公式确定调整后的队列权值;其中,wi为队列的初始权值,vi为数据报文进入队列的速率,b为链路输出带宽,λi为队列的权值动态调整因子。

根据本发明的另一方面,还提出一种队列调度装置,包括:根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值,其中队列预期分配的带宽值根据队列的初始权值和链路输出带宽确定;权值确定单元,用于若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值,其中,队列的权值动态调整因子根据业务策略确定;队列调度单元,用于根据调整后的队列权值进行队列调度。

进一步地,队列的优先级越高,队列的权值动态调整因子越大。

进一步地,权值调整判断单元还用于判断数据报文进入队列的速率是否大于队列预期分配的带宽值,若数据报文进入队列的速率大于队列预期分配的带宽值,则需要调整队列的初始权值,否则,不需要对队列的初始权值进行调整。

进一步地,权值确定单元用于根据数据报文进入队列的速率、链路输出带宽、队列的初始权值确定队列实际需要的带宽值,根据队列实际需要的带宽值与队列预期分配的带宽值之间的差值乘以队列的权值动态调整因子作为队列的初始权值的补偿值,从而得到调整后的队列权值。

进一步地,权值确定单元用于若需要调整队列的初始权值,则根据公式确定调整后的队列权值;其中,wi为队列的初始权值,vi为数据报文进入队列的速率,b为链路输出带宽,λi为队列的权值动态调整因子。

与现有技术相比,本发明根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值;若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值;并根据调整后的队列权值进行队列调度。由于引入了权值动态调整因子,因此能够在业务有突发调度需求时及时动态调整队列权值,进而实现业务的差异化调度。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1为本发明队列调度方法的一个实施例的流程示意图。

图2为本发明队列调度方法的另一个实施例的流程示意图。

图3为本发明队列调度方法的再一个实施例的流程示意图。

图4为本发明队列调度方法的一个具体应用的示意图。

图5为本发明队列调度装置的一个实施例的结构示意图。

图6为本发明队列调度装置的一个具体实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

图1为本发明队列调度方法的一个实施例的流程示意图。该队列调度方法包括以下步骤:

在步骤110,根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值。其中,可以先根据队列的初始权值和链路输出带宽计算队列预期分配的带宽值,再判断数据报文进入队列的速率是否大于队列预期分配的带宽值;若数据报文进入队列的速率大于队列预期分配的带宽值,则判断需要调整队列的初始权值。

例如,数据报文进入队列的速率为vi,链路输出带宽为b,队列的初始权值为wi,i和n为自然数,则判断vi是否大于若大于,则判断需要调整队列的初始权值wi,否则,判断不需要调整wi。

在步骤120,若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值。其中,可以根据业务策略为不同的队列设置不同的权值动态调整因子。例如,对于高优先级队列,可以设置较大的权值动态调整因子,如λi设为1,其他wrr队列根据优先级依次将权值动态调整因子设置为0到1之间。

可以根据队列实际需要的带宽值与队列预期分配的带宽值之间的差值乘以队列的权值动态调整因子作为队列的初始权值的补偿值,进而确定调整后的队列权值。

在步骤130,根据调整后的队列权值进行队列调度。每完成一个循环的调度后,可以重新计算和调整队列权值。

在该实施例中,根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值;若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值;并根据调整后的队列权值进行队列调度。该实施例中由于引入了权值动态调整因子,因此能够在业务有突发调度需求时及时动态调整队列权值,进而实现业务的差异化调度。

图2为本发明队列调度方法的另一个实施例的流程示意图。该队列调度方法包括以下步骤:

在步骤210,按照数据报文的优先级创建n个wrr队列,并设置各队列的初始权值wi和权值动态调整因子λi。为了满足业务的突发需求,可以根据业务策略设置每个队列的初始权值和权值动态调整因子。例如为了保障最高优先级的队列在突发流量需求时不会出现丢包或延时过大的情况,可以对最高优先级的队列设置较高的权值动态调整因子,对于低优先级的队列在出现流量突发需求时,可以不考虑丢包或延时情况,那么最低优先级的队列设置较低的权值动态调整因子,或者直接将权值动态调整因子设置为0。

在步骤220,获取各优先级的数据报文进入相应队列的速率vi。

在步骤230,根据链路输出带宽b计算该队列预期分配的带宽值。例如根据公式计算出该队列的预期分配带宽值。

在步骤240,判断数据报文进入队列的速率vi是否大于队列预期分配的带宽值若大于,则执行步骤250,否则,执行步骤260。

在步骤250,根据公式计算出调整后的队列权值w′i。

在步骤260,保持队列权值不变,即w′i=wi。

在步骤270,按照调整后的队列权值从队列1到队列n依次进行调度。

在该实施例中,通过引入权值动态调整因子,在队列出现业务流量突发需求时,可以及时动态调整队列权值,实现各业务的差异化调度,同时能够满足高优先级业务的突发调度需求。

图3为本发明队列调度方法的再一个实施例的流程示意图。该方法包括以下步骤:

在步骤310,数据报文进入分类器。

在步骤320,分类器按照优先级将数据报文分成n类,如类1、类2…类n。

在步骤330,创建n个wrr队列,并根据业务策略设置每个队列的初始权值wi和权值动态调整因子λi,其中,0≤λi≤1。

其中,对于最高优先级的队列设λi=1,意味着实际需要的带宽与预期分配的带宽的差值基本上全面补偿;对于下一个优先级的队列可能设λi=0.5,意味着实际需要的带宽与预期分配的带宽的差值基本上补偿一半;其他的队列可能设λi=0,意味着实际需要的带宽与预期分配的带宽的差值不补偿。

在步骤340,各种优先级的数据报文进入相应队列,测量各个队列的数据报文到达速率vi。

在步骤350,根据进入队列的报文速率和链路的输出带宽判断是否调整队列权值。

在步骤360,如果判断需要,则对队列权值进行动态调整。队列权值按照以下算法进行调整:

时,w′i=wi。

时,

在步骤370,按照调整后的队列权值从队列1到队列n依次进行调度。

在步骤380,数据报文从调度器输出。

每完成一个循环的调度后,重新计算和调整队列权值。

在该实施例中,通过引入权值动态调整因子,在队列出现业务流量突发需求时,可以及时动态调整队列权值,实现各业务的差异化调度,同时能够满足高优先级业务的突发调度需求。

本发明的一个具体实施例如图4所示,例如按照数据报文优先级,分类器将数据报文分成3类,该实施例中创建了3个wrr队列,要求对队列1和队列2的业务突发提供一定的保障,因此根据业务策略设置队列1的初值权值w1=30,权值动态调整因子λ1=1;队列2的初值权值w2=20,权值动态调整因子λ2=0.5;队列3的初值权值w3=50,权值动态调整因子λ3=0。

假如链路的输出带宽为1000m,若队列1的报文速率为200m,则队列1的调整后的队列权值w′1=30,若队列1的报文速率为350m,则队列1的调整后的队列权值w′1=35;若队列2的报文速率为180m,则队列2的调整后的队列权值w′2=20,若队列2的报文速率为300m,则队列2的调整后的队列权值w′2=25;队列3的报文速率无论为多少,队列3的调整后的队列权值w′3=50。按照调整后的队列权值从队列1到队列3依次进行调度。

在该实施例中,通过引入权值动态调整因子,在队列出现业务流量突发需求时,可以及时动态调整队列权值,实现各业务的差异化调度,同时能够满足高优先级业务的突发调度需求。

图5为本发明队列调度装置的一个实施例的结构示意图。该队列调度装置包括权值调整判断单元510、权值确定单元520和队列调度单元530,其中:

权值调整判断单元510用于根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值。其中,可以先根据队列的初始权值和链路输出带宽计算队列预期分配的带宽值,再判断数据报文进入队列的速率是否大于队列预期分配的带宽值;若数据报文进入队列的速率大于队列预期分配的带宽值,则判断需要调整队列的初始权值。

权值确定单元520用于若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值。其中,可以根据业务策略为不同的队列设置不同的权值动态调整因子。例如,对于高优先级队列,可以设置较大的权值动态调整因子,如λi设为1,其他wrr队列根据优先级依次将权值动态调整因子设置为0到1之间。

权值确定单元520可以根据队列实际需要的带宽值与队列预期分配的带宽值之间的差值乘以队列的权值动态调整因子作为队列的初始权值的补偿值,进而确定调整后的队列权值。

队列调度单元530用于根据调整后的队列权值进行队列调度。

在该实施例中,根据数据报文进入队列的速率与队列预期分配的带宽值确定是否需要调整队列的初始权值;若需要调整队列的初始权值,则根据数据报文进入队列的速率、链路输出带宽、队列的初始权值和队列的权值动态调整因子确定调整后的队列权值;并根据调整后的队列权值进行队列调度。该实施例中由于引入了权值动态调整因子,因此能够在业务有突发调度需求时及时动态调整队列权值,进而实现业务的差异化调度。

图6为本发明队列调度装置的一个具体实施例的结构示意图。队列调度装置包括输入单元610、分类单元620、队列单元630、速率测量单元640、权值调整判断单元650、权值确定单元660、队列调度单元670和输出单元680,其中:

数据报文通过输入单元610进入分类器,分类器中的分类单元620按照优先级将数据报文分成n类,如类1、类2…类n。队列单元630创建n个wrr队列,并根据业务策略设置每个队列的初始权值wi和权值动态调整因子λi,其中,0≤λi≤1。速率测量单元640测量各优先级的数据报文进入相应队列的速率。权值调整判断单元650根据链路输出带宽计算该队列预期分配的带宽值,并判断数据报文进入队列的速率是否大于队列预期分配的带宽值,若大于,则权值确定单元660根据数据报文进入队列的速率、链路输出带宽、队列的初始权值计算队列实际需要的带宽值,根据队列实际需要的带宽值与队列预期分配的带宽值之差与队列的权值动态调整因子的乘积,对队列的初始权值进行补偿得到调整后的队列权值。队列调度单元670按照调整后的队列权值从队列1到队列n依次进行调度,最后数据报文通过输出单元680出调度器。

在该实施例中,通过引入权值动态调整因子,在队列出现业务流量突发需求时,可以及时动态调整队列权值,实现各业务的差异化调度,同时能够满足高优先级业务的突发调度需求。

至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1