流量调度方法和装置与流程

文档序号:18471277发布日期:2019-08-20 20:19阅读:265来源:国知局
流量调度方法和装置与流程

本申请涉及计算机技术领域,尤其涉及一种流量调度方法和装置。



背景技术:

网络即服务(networkasaservice,naas)是目前网络技术发展的主流方向,云网络的不同租户和应用对网络报文的服务质量(qualityofservice,qos)有不同的要求,这种“多级qos的模型”的实现需要流量调度方法,流量调度方法可将网卡接收到的报文设置到服务器的内存中,内存中以队列方式存储不同的类型的报文,其中队列包括入队队列和出队队列。

现有技术中,采用分层令牌桶(hierachicaltokenbucket,htb)算法来实现队列的报文的流量调度,能够对某一类型的报文的网络流量进行一定速率的限速和整合。htb算法把各入队队列根据带宽共享关系组织成一棵树,入队操作按照网络配置把报文进行分类,队列未满,则入队成功;各队列调度报文出队时,根据该队列的令牌桶运行情况判断报文成功出队或者出队失败,如果子节点需要的带宽超过保证带宽(assuredrate,ar),但不超过最大带宽(ceilrate,cr),可以向父节点借用令牌,并使用该令牌从父节点队列借用带宽,直到该节点的总带宽达到cr。现有的htb技术中,父节点队列的一个子节点队列向父节点队列借用令牌的期间,需对父节点队列进行锁定,使得父节点队列的其他子节点队列将不能向锁定后的父节点队列借用带宽,由于父节点队列设置于服务器内存中,而对内存进行锁定次数过多,则会降低流服务器的性能,并且,在子节点队列向父节点队列借用令牌,并使用该令牌从父节点队列借用带宽时,涉及到内存切换的操作,内存切换操作次数过多也会影响服务器的性能。

因此,采用现有技术的方式,流量调度效率不高。



技术实现要素:

本申请提供一种流量调度方法和装置,以提高流量调度效率。

第一方面,本申请提供一种流量调度方法,通过根据第一接收队列的分类属性获取所述第一接收队列的权重,其中,所述第一接收队列对应于分层令牌桶htb的第一叶子节点;根据所述第一接收队列的历史报文接收情况和所述权重,获取所述第一接收队列的流量到达速率;根据所述权重从所述htb的总带宽获取所述第一接收队列的额外带宽;根据所述第一接收队列的流量到达速率、保证带宽和所述额外带宽,获取所述第一接收队列的分配带宽;根据所述分配带宽进行限速操作。

即在带宽分配的过程中,无需访问父节点,即可进行带宽分配,因此,不需要进行节点跳转和父节点的数据维护,从而,提高带宽分配效率,简化报文调度流程,提高报文调度效率。

在本申请一种实现方式中,所述分类属性包括计费信息和租户信誉度,所述根据第一接收队列的分类属性获取所述第一接收队列的权重,包括:

对所述计费信息和所述租户信誉度进行计算,获取所述第一接收队列的权重。

由于根据计费信息和租户信誉度确定接收队列的权重,因此,可以为不同计费信息和所述租户信誉度的接收队列确定不同的权重,在进行带宽分配时考虑权重,使得带宽分配更加合理。

在本申请另一种实现方式中,所述对所述计费信息和所述租户信誉度进行计算,获取所述第一接收队列的权重,包括:

对所述计费信息和所述租户信誉度进行加权平均,获取所述第一接收队列的权重。

通过对计费信息和所述租户信誉度进行加权平均得到接收队列的权重,使得接收队列的权重的确定更加合理,并且计算方式简单高效,可以进一步地提高流量调度的效率。

在本申请另一种实现方式中,所述历史报文接收情况包括所述第一接收队列在第一时间点接收到的第一报文数量以及所述第一接收队列在第二时间点接收到的第二报文数量,所述根据所述第一接收队列的历史报文接收情况和所述权重,获取所述第一接收队列的流量到达速率,包括:

获取所述第二报文数量与所述第一报文数量的报文数量差值;

获取所述第二时间点与所述第一时间点的时间差值;

根据所述报文数量差值、所述时间差值以及所述第一接收队列的权重,获取所述第一接收队列的流量到达速率。

通过历史报文接收情况确定队列的流量到达速率,不需要进行节点跳转和父节点的数据维护,从而避免内存切换和内存锁定,可提高带宽分配效率,简化报文调度流程,提高报文调度效率,降低报文的处理时延。

在本申请另一种实现方式中,所述根据所述报文数量差值、所述时间差值以及所述第一接收队列的权重,获取所述第一接收队列的流量到达速率,包括:

获取所述报文数量差值与所述时间差值的比值为平均流量到达速率;

根据所述权重与所述平均流量到达速率,获取所述第一接收队列的流量到达速率。

通过根据历史报文接收的平均流量到达速率,确定队列的流量到达速率,不需要进行节点跳转和父节点的数据维护,从而避免内存切换和内存锁定,可提高带宽分配效率,简化报文调度流程,提高报文调度效率,降低报文的处理时延。

在本申请另一种实现方式中,所述根据所述权重与平均流量到达速率,获取所述第一接收队列的流量到达速率,包括:

根据所述权重与平均流量到达速率相乘,获取所述第一接收队列的流量到达速率。

通过根据权重与平均流量到达速率相乘,获取所述第一接收队列的流量到达速率。使得接收队列的流量到达速率的确定更加合理,并且计算方式简单高效,可以进一步地提高流量调度的效率。

在本申请另一种实现方式中,所述根据所述权重从所述htb的总带宽获取所述第一接收队列的额外带宽,包括:

选择所述htb的叶子节点对应的接收队列的保证带宽和流量到达速率中的较小值作为所述叶子节点对应接收队列的候选带宽;

将每一叶子节点的候选带宽进行累加以获取候选带宽累加值;

获取所述总带宽与所述候选带宽累加值之差为共享带宽;

根据所述权重与所有需要额外带宽的叶子节点的权重的和值的比值以及所述共享带宽,获取所述第一接收队列的额外带宽。

在本申请另一种实现方式中,所述根据所述第一接收队列的流量到达速率、保证带宽和所述额外带宽,获取所述第一接收队列的分配带宽,包括:

根据所述流量到达速率和所述保证带宽中的较小值与所述额外带宽的和值,得到所述第一接收队列的分配带宽。

在本申请另一种实现方式中,根据所述第一接收队列的流量到达速率、保证带宽和所述额外带宽,获取所述第一接收队列的分配带宽,包括:

根据所述流量到达速率和所述保证带宽中的较小值、所述额外带宽以及允许突发的带宽速率的和值,得到所述第一接收队列的分配带宽。

在本申请另一种实现方式中,所述根据所述分配带宽进行限速操作,包括:

获取限速操作相关参数;

根据所述分配带宽以及所述限速操作相关参数,进行限速操作。

在本申请另一种实现方式中,所述限速操作相关参数包括下述至少一项:

报文转发中允许突发的带宽速率;

最大限制速率;

超过最大限制速率的报文的处理方式。

第二方面,本申请提供一种流量调度装置,包括:

获取模块,用于根据第一接收队列的分类属性获取所述第一接收队列的权重,其中,所述第一接收队列对应于分层令牌桶htb的任一叶子节点;

所述获取模块,还用于根据所述第一接收队列的历史报文接收情况和所述权重,获取所述第一接收队列的流量到达速率;

所述获取模块,还用于根据所述权重从所述htb的总带宽获取所述第一接收队列的额外带宽;

所述获取模块,还用于根据所述第一接收队列的流量到达速率、保证带宽和所述额外带宽,获取所述第一接收队列的分配带宽;

控制模块,用于根据所述分配带宽进行限速操作。

第二方面或第二方面任意一种实现方式是第一方面或第一方面任意一种实现方式对应的装置实现,第一方面或第一方面任意一种实现方式中的描述适用于第三方面或第三方面任意一种实现方式,在此不再赘述。

第三方面,本申请提供一种计算机设备,包括:

存储单元,用于存储指令;以及

至少一台处理器,与所述存储单元耦合;

其中,当所述至少一台处理器执行所述指令时,所述指令致使所述处理器执行权利要求第一方面或第一方面任一种实现方式中所述的方法,此处不再赘述。

第四方面,本申请提供一种计算机可读存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现第一方面或第一方面任一种实现方式中所述的方法,此处不再赘述。

附图说明

图1为本申请提供的一种流量分配树状结构的示意图;

图2为本申请提供的一种流量调度架构示意图;

图3是图2所示的流量调度架构对应的树状结构示意图;

图4为本申请提供的一种树状结构示意图;

图5为本申请提供的一种流量调度方法的流程示意图;

图6示出本发明实施例的流量调度系统的系统结构示意图;

图7为本申请提供的一种流量调度装置实施例的结构示意图;

图8是根据本发明实施例的计算机设备的装置结构示意图

具体实施方式

本申请根据流量分配树状结构的所有节点的约束条件,通过数学建模的方式进行归一化处理,得到所有叶子节点的约束条件,从而,将多级令牌桶归一至叶子节点上的令牌桶。为了便描述方便,本申请定义了如下几个参数:叶子节点的有效需求带宽(demandrate,d),叶子节点可以应得带宽(supplyrate,s),ar和cr,其中,有效需求带宽也称为流量到达速率,应得带宽也称分配带宽。令牌桶可以确定d和s的之间的一组大小关系(d≤s),现有技术中,叶子节点的d出现在多个不等式中,需要经过多个令牌桶,本申请通过简化约束,减少令牌桶的数量。

图1为本申请提供的一种流量分配树状结构的示意图,以图1为例,将多级令牌桶归一至叶子节点上的令牌桶的实现方式如下:

本申请求解目标是最大化所有叶子节点的分配带宽(应得带宽),即目标函数为:

maxz=s1+s3+s4+s5+s6+s21+s22+s23+s24

现有的约束条件要满足层级递归遍历子节点所有应得带宽的总和小于父节点的cr,即约束条件如下:

min{d1,ar1}≤s1≤cr1

min{d3,ar3}≤s3≤cr3

min{d4,ar4}≤s4≤cr4

min{d5,ar5}≤s5≤cr5

min{d6,ar6}≤s6≤cr6

min{d21,ar21}≤s21≤cr21

min{d22,ar22}≤s22≤cr22

min{d23,ar23}≤s23≤cr23

min{d24,ar24}≤s24≤cr24

s21+s22+s23+s24≤cr2

s1+s3+s4+s5+s6+s21+s22+s23+s24≤crroot

针对一个令牌桶对应一个不等式,叶子节点数目为l,内部节点数目为k,现有技术的约束条件为(l+k)个不等式,需要(l+k)个令牌桶,本申请通过l个不等式表示,因此,本申请需要l个令牌桶即可,并定义归一令牌桶参数为mi,通过上述目标函数和现有约束条件的迭代计算可以得到本申请如下l个不等式:

s1≤m1

s3≤m3

s4≤m4

s5≤m5

s6≤m6

s21≤m21

s22≤m22

s23≤m23

s24≤m24

基于以上理论基础,本发明实施例可实现将将多级令牌桶归一至叶子节点上的令牌桶。

本申请通过将报文发送过程和带宽分配过程进行分离。根据历史报文接收情况,对叶子节点进行带宽分配,报文发送过程中根据已经分配的带宽进行限速操作,而无需在报文发送过程中访问父节点,因此,不再进行节点跳转和父节点的数据维护,无需进行内存切换和内存锁定,从而,简化报文调度流程,提高报文调度效率。

图2为本申请提供的一种流量调度架构示意图,其中,包括:入队接口、接收队列0、接收队列1、接收队列2、分类器0、分类器1、分类器2、接收队列01、接收队列02和接收队列03、接收队列11、接收队列12和接收队列13、接收队列21、接收队列22、接收队列23、发送队列和出队接口,其中,入队接口例如为网卡用于接收报文的接口,出队接口例如为网卡用于发送报文的接口,所有队列均设置于物理服务器的内存中。图3是图2所示的流量调度架构对应的树状结构示意图,如图3所示,其中,入队接口对应根节点root,接收队列0、接收队列1、接收队列2对应根节点的子节点,接收队列01、接收队列02和接收队列03、接收队列11、接收队列12和接收队列13、接收队列21、接收队列22、接收队列23对应叶子节点。

入队接口接收到报文之后,经过分布式哈希分配给接收队列0、接收队列1或接收队列2,分类器(包括,分类器0、分类器1或分类器2)从接收队列0、接收队列1或接收队列2中获取待处理的报文,并根据报文的分类属性进行分类入队操作(即将报文写入到接收队列01、接收队列02和接收队列03、接收队列11、接收队列12和接收队列13、接收队列21、接收队列22或接收队列23中);在进行入队操作过程中,本发明实施例的流量调度装置可以测量各接收队列的负载情况,例如:队列长度、队列报文到达速率、分类属性等信息。

其中,分类器可根据报文的分类属性进行分类入队操作,分类属性可包括:报文目的ip地址、报文目的端口、报文的虚拟局域网标识(virtuallocalareanetworkidentify,vlanid)、报文源ip地址、报文源端口、报文类型、计费信息、租户信誉度。

其中报文的vlanid可用于标识云网络的不同租户,不同的租户可具有不同的计费信息和租户信誉度,计费信息和租户信誉度可通过云平台预先设置。

分类器可将分类属性发送给流量调度装置。

流量调度装置向分类器给出限速配置信息,其中,限速配置信息包括队列的分配带宽,分类器根据分配带宽对对应的接收队列进行限速。

分类器执行队列选择、报文出队等操作。具体地,分类器从非空队列列表中根据队列优先级、队列权值等信息,进行加权轮询操作,从非空队列中选择出一个队列,然后,根据该队列的分配带宽以及限速操作相关参数,确定该队列能否进行出队操作,如果能够进行出队操作,从内存中读取报文并处理,如果不能进行出队操作,选择下一队列直到尝试次数到达最大限制次数。

分类器在报文出队操作结束后,向流量调度装置传递控制信息,该控制信息包括但不限于空队列编号、速率不足队列编号(队列非空但不能进行出包操作的队列编号)等。

流量调度装置对分类器给出的队列信息进行汇总,从而,得到各队列的队列长度(包括空队列和满队列)、报文到达速率和报文发送速率等信息,根据预先配置的带宽分配计算规则,重新计算某些队列或者全部队列的应得带宽,并向用于控制接收队列中的报文的出队操作的相关模块(图2未示出)发送应得带宽以进行报文出队限速。

从分类调度收包模块测量得到的报文到达速率计算带宽分配的过程如下:

为简化计算过程说明,假设所有队列优先级相同。把树状结构中的各节点进行编号(如图4所示)。图4为本申请提供的一种树状结构示意图,根节点编号为0,根节点的子节点依次编号为(0,1)、(0,2)…(0,n),(0,1)的子节点编号为(0,1,1)、(0,1,2)……这样,节点编号可以判断出节点的父节点和该节点所处的深度。任意节点(0,x1,....,xn)有ar和cr分别记为ar(0,x1,....,xn)、cr(0,x1,....,xn);记录该节点的需求带宽为d'(0,x1,x2,…,xn),有效需求带宽为d(0,x1,x2,…,xn),应得带宽为s(0,x1,x2,…,xn)。

首先从叶子节点向上执行有效需求带宽更新,然后从根节点向下执行应得带宽计算更新。

有效需求带宽更新计算时,叶子节点的需求带宽是分类调度收包模块的测量结果,内部节点的需求带宽是其子节点的有效需求带宽之和;节点的需求带宽和最大带宽之间的较小值就是节点的有效需求带宽。计算公式如下:

d(0,x1,x2,…,xn)=min{d'(0,x1,x2,…,xn),cr(0,x1,x2,…,xn)}

根据该公式,从叶子节点向上直到根节点的有效需求都计算完毕。本更新方案依靠子节点的有效需求带宽,推算出父节点的有效需求带宽,而不需要再经过测量模块(如:令牌桶)

测量父节点的有效需求带宽。

根据有效需求的计算结果从根节点向下计算各个节点的应得带宽,其中根节点的带宽(总带宽)是预配置好的信息,其他节点根据有效需求和应得带宽的关系进行计算。如果节点有效需求没有超过节点保证带宽或者节点父节点的总需求不超过父节点分配带宽,则分配给该节点的应得带宽就是其有效需求带宽;否则,在兄弟节点占用足够带宽(保证带宽和有效需求带宽中的较小值)后,剩余带宽在需要借用带宽的节点之间分配。数学表达计算公式如下:

s(0)=配置信息

de(0,x1,…,xn)=max{d(0,x1,x2,…,xn)-ar(0,x1,x2,…,xn),0}

d”(0,x1,x2,…,xn-1)=∑i=1,2,…kde(0,x1,x2,…,xn-1,i)k是该节点的子节点的个数其他根据以上计算公式,可以准确的给各节点分配带宽资源。

并可以得出:

假设队列i为叶子节点。

根据获取共享带宽,其中,r为共享带宽,ar(i)为队列i的保证带宽,d(i)为队列i的流量到达速率,min(a,b)为返回a,b中的较小值,k为叶子节点的个数。

根据(若d(i)>ar(i),pi=1,否则,pi=0,其中,wi为队列i的权重)获取额外带宽,其中,e(i)为队列i的额外带宽。

为便于说明,请参见图5,图5为本申请提供的一种流量调度方法的流程示意图,如图5所示,其中,s501-s505由图2的流量调度装置执行,本实施例的方法如下:

s501:根据第一接收队列的分类属性获取所述第一接收队列的权重。

其中,第一接收队列对应于分层令牌桶htb的任一叶子节点。

可选地,分类属性可以包括计费信息和租户信誉度。可以通过对计费信息和租户信誉度进行计算,获取第一接收队列对应的权重。例如:通过对计费信息和租户信誉度进行加权平均,获取第一接收队列对应的权重,加权平均方式可例如为:a=x*b+y*c,其中a是权重,b是计费信息,c是租户信誉度,x是计费信息的归一化系数,y是租户信誉度的归一化系数,归一化系数x用于保证x*b的结果在某一数值范围内,归一化系数y用于保证y*c的结果在某一数值范围内,x和y可根据实际需要进行设置。

可选地,分类属性中的部分属性或者全部属性可以通过对第一接收队列测量的方式获得,例如:可以在报文入队操作中增加测量模块来对报文的包头和载荷(payload)进行测量。

在确定第一接收队列对应的权重时可以考虑分类属性的部分属性或者全部属性,对此,本申请不做限制。

由于分类属性中的部分属性或者全部属性与第一接收队列的运行情况有关,因此,当分类属性中的部分属性或者全部属性发生变化时,第一接收队列的权重也可能随之相应的发生变化。

s502:根据第一接收队列的历史报文接收情况和权重,获取第一接收队列的流量到达速率。

其中,第一接收队列的历史报文接收情况可以通过测量的方式获得,也可以通过其他方式获得,对此,本申请不做限制。

获取第一接收队列的流量到达速率包括但不限于如下可能的实现方式:

一种可能的实现方式:

可以通过直接测量的方式获取一段时间段内的接收到的报文的数量,根据一段时间段内接收到的报文的数量与一段时间段的比值,得到第一接收队列的的平均流量到达速率;

根据第一接收队列的平均流量到达速率与第一接收队列的权重相乘,得到第一接收队列的流量到达速率。

例如:假设,队列i为第一接收队列,队列i在一段时间段内δt内接收到的报文的数量为bi,则队列i的平均流量到达速率通过如下公式获得:

队列i的流量到达速率d(t)通过如下公式获得:

其中,wi为队列i的权重。

这种情况适合于在队列i在δt之前为空的的情况,此时可以不考虑历史数据对现在的影响。

另一种可能的实现方式:

可以通过直接测量的方式获取第一接收队列在第一时间点接收到的第一报文数量以及第一接收队列在第二时间点接收到的第二报文数量。通过计算的方式获取第一报文数量和第二报文数量的报文数量差值,以及获取第二时间点与第一时间点的时间差值,根据报文数量差值、时间差值以及第一接收队列的权重,以及第一时间点的第一接收队列的流量到达速率,获取第二时间点的第一接收队列的流量到达速率。

可选地,获取报文数量差值与时间差值的比值为平均流量到达速率,根据权重和平均流量到达速率,获取第一接收队列的流量到达速率。例如:可以根据权重和平均流量到达速率相乘,得到第一接收队列的流量到达速率。

例如:假设,队列i为第一接收队列,队列i在t时刻收到的报文总数为bi(t),在t+δt时刻收到的报文总数为bi(t+δt),bi(t+δt)-bi(t)为δt时间段内接收到的报文数量,队列i的平均流量到达速率通过如下公式获得:

队列i的在t+δt时刻的流量到达速率d(t+δt)通过如下公式获得:

其中,wi为队列i的权重,α(0<α<1)表示在t+δt时刻的d(t+δt)对于在t时刻的历史量测值d(t)之权重系数,其值越接近1,表示对过去测量值的权重依赖较低,其决定了ewma跟踪实际数据突然发生变化的能力。

在本实施例中的测量方法参考了指数加权移动平均法(exponentiallyweightedmovingaverage,ewma)算法,ewma是一种常用的序列数据指数加权移动平均处理方式(网络中的滑动窗口方法),在时间t,根据实际的观测值(或量测值)可以计算t时刻的估计值ewma(t):

ewma(t)=λ*y(t)+(1-λ)*ewma(t-1),t=1`,2,…n

其中y(t)是t时间的量测值,n是观测值数量,λ(0<λ<1)表示ewma对于历史量测值之权重系数,其值越接近1,表示对过去测量值的权重依赖较低,其决定了ewma跟踪实际数据突然发生变化的能力,即时效性。

也就是,可以根据对第一接收队列的在第一时刻的历史测量结果和第二时刻的测量结果得到第一接收队列的流量到达速率。

s503:根据权重从htb的总带宽获取第一接收队列的额外带宽。

其中,一种可能的实现方式:

选择htb的叶子节点对应的接收队列的保证带宽和流量到达速率中的较小值作为该叶子节点对应接收队列的候选带宽,将每一叶子节点的候选带宽进行累加以获取候选带宽累加值,获取htb的总带宽减去候选带宽累加值的差值,并将该差值作为共享带宽,获取所有需要额外带宽的叶子节点的权重的和值,获取第一接收队列的权重与所述第二和值的比值,根据该比值从共享带宽获取第一接收队列的额外带宽。

该方式通过数学公式表达如下:

根据获取共享带宽,其中,r为共享带宽,ar(i)为队列i的保证带宽,d(i)为队列i的流量到达速率,min(a,b)为返回a,b中的较小值,k为叶子节点的个数,a=ar(i)和d(i)中的一者,b=ar(i)和d(i)中的另一者。

其中,d(i)即上文表示的d(t+δt),d(i)队列i的在t+δt时刻的流量到达速率。

根据(若d(i)>ar(i),pi=1,否则,pi=0,其中,wi为队列i的权重)获取额外带宽,其中,e(i)为队列i的额外带宽。

s504:根据第一接收队列的流量到达速率、保证带宽和额外带宽,获取第一接收队列的分配带宽。

其中,一种可能的实现方式:根据流量到达速率和保证带宽中的较小值与额外带宽的和值,得到第一接收队列的分配带宽。

例如:假设第一接收队列为队列i,根据min{ar(i),d(i)}+e(i)得到第一接收队列的分配带宽。

另一种可能的实现方式:根据流量到达速率和保证带宽中的较小值、所述额外带宽以及允许的突发速率的和值,得到第一接收队列的分配带宽。

例如:假设第一接收队列为队列i,根据min{ar(i),d(i)}+e(i)+burst,得到第一接收队列的分配带宽。其中,burst为允许的突发速率,burst用于保证队列可支持特殊情况下突然增加的报文数量。

在s501-s504的带宽分配过程中,以为其中一个叶子节点对应的接收队列进行带宽分配为例进行描述,其余叶子节点对应的接收队列的带宽分配情况类似,本申请不一一赘述。

对某一个叶子节点对应的接收队列进行带宽分配,即根据所有叶子节点对应的接收队列的报文接收情况和权重,预估每个叶子节点对应的接收队列的流量到达速率,根据所有叶子节点对应的接收队列的流量到达速率、保证带宽以及权重,即可对某一叶子节点进行带宽分配。

s505:根据分配带宽进行限速操作。

具体地,根据所述分配带宽设置第一接收队列的令牌速率,并根据所述令牌速率对所述第一接收队列中的报文的出队操作进行限速操作。

一种可能的实现方式:

获取限速操作相关参数,根据分配带宽以及限速操作相关参数进行限速操作。

其中,限速操作相关参数包括但不限于如下至少一种:

报文转发中允许突发的带宽速率,最大限制速率,超过最大限制速率的报文的处理方式。本实施例,使用了现有的htb树对接收队列进行管理,但没有使用htb树的令牌桶进行带宽借用,而是通过根据第一接收队列的分类属性获取第一接收队列的权重,根据第一接收队列的历史报文接收情况和权重,获取第一接收队列的流量到达速率,根据权重从htb的总带宽获取第一接收队列的额外带宽,根据第一接收队列的流量到达速率、保证带宽和额外带宽,获取第一接收队列的分配带宽,根据分配带宽进行限速操作,即在带宽分配的过程中,无需访问父节点,即可进行带宽分配,因此,不需要进行节点跳转和父节点的数据维护,从而避免内存切换和内存锁定,可提高带宽分配效率,简化报文调度流程,提高报文调度效率,降低报文的处理时延。

图6示出本发明实施例的流量调度系统的系统结构示意图,本发明实施例可应用于在开源数据平面开发套件(dataplanedevelopmentkit,dpdk)平台中,重新设计qos模块,实现htb的带宽分配原则。如图6所示,在dpdk框架中,本实施涉及的流量调度系统包括网卡、cpu核1-4,和内存,其中,cpu3运行收包函数和发包函数,cpu1和cpu2均运行入队列函数和出队列函数,cpu4实现上述的流量调度装置,收包函数可以由dpdk收包函数(rte_eal_rx_burst)实现,发包函数可以由dpdk发包函数(rte_eal_tx_burst)实现,入队列函数包括:分类器(classifier)实现函数、速率测量(sensor)函数和dpdk无锁环形队列入队函数(rte_ring_enqueue),出队列函数包括:dpdk无锁环形队列出队函数(rte_ring_dequeue)和控制出队操作模块(actioner),接收队列和发送队列设置于内存中。为了提高多核平台的运行效率,把以上的功能函数和流量调度装置与cpu核绑定,省略线程在多核之间的调度。

图7为本申请提供的一种流量调度装置实施例的结构示意图,本实施例的装置包括:获取模块901和处理模块902,本实施例中,获取模块901用于根据第一接收队列的分类属性获取所述第一接收队列的权重,其中,所述第一接收队列对应于分层令牌桶htb的任一叶子节点;所述获取模块901还用于根据所述第一接收队列的历史报文接收情况和所述权重,获取所述第一接收队列的流量到达速率;所述获取模块901还用于根据所述权重从所述htb的总带宽获取所述第一接收队列的额外带宽;所述获取模块901还用于根据所述第一接收队列的流量到达速率、保证带宽和所述额外带宽,获取所述第一接收队列的分配带宽;控制模块901用于根据所述分配带宽进行限速操作。

可选地,所述分类属性包括计费信息和租户信誉度,所述获取模块901具体用于对所述计费信息和所述租户信誉度进行加权平均,以获取所述权重。

可选地,所述历史报文接收情况包括所述第一接收队列在第一时间点接收到的第一报文数量以及所述第一接收队列在第二时间点接收到的第二报文数量;

所述获取模块901具体用于获取所述第二报文数量与所述第一报文数量的报文数量差值;获取所述第二时间点与所述第一时间点的时间差值;根据所述报文数量差值、所述时间差值以及所述第一接收队列的权重,获取所述第一接收队列的流量到达速率。

可选地,所述获取模块901具体用于获取所述报文数量差值与所述时间差值的比值,将所述比值作为平均流量到达速率;根据所述权重与所述平均流量到达速率,获取所述第一接收队列的流量到达速率。

可选地,所述获取模块901具体用于选择所述htb的叶子节点对应的接收队列的保证带宽和流量到达速率中的较小值作为所述叶子节点对应接收队列的候选带宽;将每一叶子节点的候选带宽进行累加以获取候选带宽累加值;获取所述总带宽与所述候选带宽累加值之差为共享带宽;根据所述权重与所有需要额外带宽的叶子节点的权重的和值的比值以及所述共享带宽,获取所述第一接收队列的额外带宽。

可选地,所述获取模块901具体用于根据所述流量到达速率和所述保证带宽中的较小值与所述额外带宽的和值,得到所述第一接收队列的分配带宽。

可选地,所述获取模块901具体用于根据所述流量到达速率和所述保证带宽中的较小值、所述额外带宽以及允许突发的带宽速率的和值,得到所述第一接收队列的分配带宽。

本实施例的装置对应地可用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本申请还提供一种计算机设备,包括:存储单元,用于存储指令;以及至少一台处理器,与所述存储单元耦合;其中,当所述至少一台处理器执行所述指令时,所述指令致使所述处理器执行图5所述的方法。

具体可参见图8,图8是根据本发明实施例的计算机设备的装置结构示意图,图8中,计算机设备可以包括处理单元201和通信接口202,处理单元201用于执行计算机设备上运行的操作系统以及各种软件程序所定义的功能,例如,上述流量调度装置的功能。通信接口202用于与其他计算节点进行通信交互,其他设备可以是其它物理服务器,具体地,通信接口202可以是网卡。可选地,该计算机设备还可以包括输入/输出接口203,输入/输出接口203连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口203可以为鼠标、键盘、显示器、或者光驱等。可选地,该计算机设备还可以包括辅助存储器204,一般也称为外存,辅助存储器204的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。处理单元201可以有多种具体实现形式,例如处理单元201可以包括处理器2011和内存2012,处理器2011根据内存2012中存储的程序单元执行相关的操作,处理器2011可以为中央处理器(cpu)或图像处理器(英文:graphicsprocessingunit,gpu),处理器2011可以是单核处理器或多核处理器。处理单元201也可以单独采用内置处理逻辑的逻辑器件来实现,例如现场可编程门阵列(英文全称:fieldprogrammablegatearray,缩写:fpga)或数字信号处理器(英文:digitalsignalprocessor,dsp)等。

本申请还提供一种计算机可读存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现图5所述的方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

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