一种队列调度的方法及装置与流程
未命名
09-23
阅读:44
评论:0
1.本技术涉及通信技术领域,尤其涉及一种队列调度的方法及装置。
背景技术:
2.服务质量(quality of service,qos)是反映网络状态的指标,网络状态包括网络延迟、网络阻塞等状态。队列调度技术是保证网络qos的关键技术,得到了广泛的应用。队列调度技术是指将网络设备接收的报文加入队列,并按规律将队列中存储的报文排出队列。被排出队列的报文从网络设备的出接口被发往下一跳网络设备。一次将报文排出队列被称为一次调度。
3.但是,即使为网络设备配置了队列调度功能,网络设备仍有可能在短时间内向下一跳网络设备发送大量报文,产生流量突发,影响下一跳网络设备的qos。
技术实现要素:
4.本技术实施例提供了一种队列调度的方法及装置,旨在灵活调整每次调度被排出队列的报文的总字节数,提升网络系统的qos。
5.第一方面,本技术实施例提供了一种队列调度的方法,该方法可以应用于队列调度装置,队列调度装置可以是第一设备上用于调度出接口的报文出队的软件模块或硬件模块,第一设备可以是路由器、交换机等网络设备,也可以是其他用于对报文进行调度的设备。所述方法包括如下步骤:队列调度装置确定第一带宽,第一带宽用于指示出接口的报文被排出队列的速率。接着,队列调度装置可以根据第一带宽和第一调度频率确定第一调度参数。其中,第一调度频率用于指示单位时间内的最大调度参数,即单位时间内队列调度装置最多能执行几次将报文排出队列的动作。第一调度参数用于指示每次调度的报文长度,即队列调度装置每次调度最多能将多长的报文排出队列。这样,基于第一带宽和第一调度频率确定第一调度参数,相当于根据队列调度装置实际转发报文的情况(即第一带宽)和队列调度装置本身的性能(即第一调度频率)确定第一调度参数。在确定第一调度参数之后,可以根据第一调度参数调度出接口的报文排出队列。这样,出接口的调度参数可以根据出接口的实际带宽灵活调整。如果出接口的带宽变小,队列调度装置可以减小出接口的调度参数,以减少了每次调度被发往对应的下一跳网络设备的报文的总字节数,避免导致下一跳网络设备的流量突发。如果出接口的带宽增大,队列调度装置可以增加出接口的调度参数,队列调度装置每次调度可以将更多的报文排出队列,增加出接口的最大带宽。可见,基于出接口的实际带宽灵活调整调度参数,使得出接口的调度参数与出接口的实际流量相匹配。如此,在保证数据流正常传输的前提下,减小了每次调度被排出队列的报文的字节总数,能够更好地保证网络的qos。
6.在一种可能的设计中,在确定第一调度参数之前,队列调度装置可以先确定第一带宽与第二带宽匹配。其中,第二带宽是根据第二调度参数和第一调度频率确定的。第二调度参数是在第一时刻时,队列调度装置每次调度排出队列的报文的总字节数。第一时刻为
队列调度装置获取第一带宽的时刻。也就是说,第二带宽是根据队列调度装置在获取第一带宽时的调度参数确定。如果第二带宽与第一带宽匹配,说明第一时刻的调度参数不满足第一带宽的需求,队列调度装置可以根据第一带宽和第一调度频率确定新的调度参数(即第一调度参数)。
7.在一种可能的设计中,上述第一带宽与第二带宽匹配包括第一带宽小于第二带宽。如果第一带宽小于第二带宽,说明队列调度装置在第一时刻的实际带宽小于第一时刻队列调度装置能够达到的最大带宽。因此,队列调度装置可以减小调度参数,以降低每次调度被排出队列的报文的字节总数。即使第一调度参数小于第二调度参数,队列调度装置能够达到的最大带宽减小,由于第一带宽小于第二带宽,不会影响报文的正常调度。
8.在一些可能的设计中,队列调度装置可以根据第一带宽和第一调度频率的比值确定第一调度参数。其中,第一带宽和第一调度频率的比值,表示使得队列调度装置的最大带宽等于第一带宽的调度参数。这样,根据第一带宽和第一调度频率的比值确定的第一调度参数,与出接口的实际带宽匹配。
9.在一种可能的设计中,队列调度装置可以根据第一带宽和第一调度频率的比值,从多个预设的调度参数中选择第一调度参数。具体地,队列调度装置先根据第一带宽和第一调度频率的比值确定第三调度参数。第三调度参数可以等于第一带宽和第一调度频率的比值,也可以等于第一带宽和第一调度频率的比值与第一预设值之和。接着队列调度装置根据第三调度参数,从第一候选调度参数集合中选择大于或等于第三调度参数的第一候选调度参数确定为第一调度参数。例如,队列调度装置可以将第一候选调度参数集合中大于第三调度参数且最小的第一候选调度参数确定为第一调度参数。第一候选调度参数集合包括多个第一候选调度参数。
10.在一种可能的设计中,第一带宽根据出接口被调度出队的报文长度确定,或第一带宽根据加入第一队列集合的报文长度确定,第一队列集合为出接口对应的队列组成的集合。也就是说,第一带宽可以是出接口的出队带宽,也可以是出接口的入队带宽。
11.在一种可能的设计中,上述第一带宽与第二带宽匹配包括第一带宽大于或等于第二带宽。如果第一带宽不小于第二带宽,说明出接口在第一时刻的带宽占用较高,出接口不具备足够的带宽应对可能的流量突发。因此,队列调度装置可以根据第二调度参数确定第一调度参数。第一调度参数大于第二调度参数。这样,在单位时间内能够进行的最大调度次数不变的情况下,提升每次调度被排出队列的报文的总字节数,相当于增加了队列调度装置的最大带宽,避免因流量突发造成的拥塞和丢包,提升网络系统的qos。
12.在一种可能的设计中,队列调度装置根据第一带宽和第二调度参数从多个预设的调度参数中选择第一调度参数。具体地,队列调度装置可以从第二候选调度参数集合中选择大于第二调度参数的第二候选调度参数作为第一调度参数。其中,第二候选调度参数集合包括多个第二候选调度参数。第一调度参数例如可以是第二候选调度参数集合中大于第二调度参数且最小的第二候选调度参数。
13.在一种可能的设计中,队列调度装置根据第二队列调度参数和预设值之和确定。该预设值又可以被称为预设步长。即,第一调度参数等于第二调度参数与预设步长之和。
14.在一种可能的设计中,如果第一带宽为出接口的入队带宽,那么第一带宽可能大于第一带宽,也可能大于第一调度频率与第二调度参数的乘积。相应地,队列调度装置可以
根据第一带宽和第一调度频率的比值确定第一调度参数。其中,第一带宽和第一调度频率的比值,表示使得队列调度装置的最大带宽等于第一带宽的调度参数。
15.在一种可能的设计中,队列调度装置通过比较实际调度报文出队的频率和第一调度频率之间的大小关系确定第一带宽与第二带宽匹配。具体地,假设队列调度装置在单位时间内的实际调度次数用第二调度频率表示,那么队列调度装置可以比较第二调度频率和第三调度频率之间的大小关系。如果第二调度频率不小于第三调度频率,说明第一带宽不小于第二带宽。其中,第三调度频率根据第一调度频率确定,例如第三调度频率可以等于第一调度频率,或者等于第一调度频率与第一预设比例的乘积。
16.在一种可能的设计中,上述第一调度频率根据队列调度装置的晶振频率或时钟频率确定。
17.第二方面,本技术实施例提供了一种队列调度装置,所述装置包括:获取单元,用于确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;处理单元,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
18.在一种可能的设计中,所述处理单元,具体用于确定所述第一带宽与第二带宽匹配,所述第二带宽根据第二调度参数和所述第一调度频率确定,所述第二调度参数为所述队列调度装置在第一时刻每次调度的报文长度,所述第一时刻为所述队列调度装置获取所述第一带宽的时刻。
19.在一种可能的设计中,所述处理单元,具体用于响应于所述第一带宽小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数,所述第一调度参数小于所述第二调度参数。
20.在一种可能的设计中,所述处理单元,具体用于根据所述第一带宽和所述第一调度频率的比值确定第三调度参数;根据所述第三调度参数,从第一候选调度参数集合中确定所述第一调度参数,所述第一候选调度参数集合包括多个第一候选调度参数,所述第一调度参数为所述第一候选调度参数集合中不小于所述第三调度参数的第一候选调度参数。
21.在一种可能的设计中,所述第一带宽根据从所述出接口被调度出队的报文长度确定,或,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口。
22.在一种可能的设计中,所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第二调度参数确定所述第一调度参数,所述第一调度参数大于所述第二调度参数。
23.在一种可能的设计中,所述处理单元,具体用于根据所述第二调度参数,从第二候选调度参数集合中确定所述第一调度参数,所述第二候选调度参数集合包括多个第二候选调度参数,所述第一调度参数为所述第二候选调度参数集合中不小于所述第二调度参数的第二候选调度参数。
24.在一种可能的设计中,所述处理单元,具体用于根据所述第三调度参数和预设步长之和确定所述第一调度参数。
25.在一种可能的设计中,所述第一带宽根据加入第一队列集合的报文长度确定,所
述第一队列集合对应所述出接口,所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数。
26.在一种可能的设计中,所述处理单元,具体用于确定第二调度频率不小于第三调度频率,所述第二调度频率用于指示所述队列调度装置在单位时间内的实际调度次数,所述第三调度频率根据所述第一调度频率确定。
27.在一种可能的设计中,上述第一调度频率根据队列调度装置的晶振频率或时钟频率确定。
28.第三方面,本技术实施例提供了一种设备,所述设备包括处理器和存储器,所述存储器用于存储指令或程序代码,所述处理器用于从存储器中调用并运行所述指令或程序代码,以执行如前述第一方面所述的队列调度的方法。
29.第四方面,本技术实施例提供了一种芯片,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行如前述第一方面所述的队列调度的方法。
30.第五方面,本技术实施例提供了一种计算机可读存储介质,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机执行如前述第一方面所述的队列调度的方法。
附图说明
31.图1为本技术实施例提供的系统100的一种架构示意图;
32.图2为本技术实施例提供的队列调度的方法的一种流程示意图;
33.图3为本技术实施例提供的队列调度的方法的一种方法流程图;
34.图4为本技术实施例提供的一种队列调度的装置400的结构示意图;
35.图5为本技术实施例提供的一种设备500的结构示意图;
36.图6为本技术实施例提供的一种设备600的结构示意图。
具体实施方式
37.队列调度技术可以用于缓解流量突发,提升网络的qos。如果出现流量突发,网络设备在短时间内接收到大量报文。通过队列调度技术,网络设备将接收到的报文存储在队列中,对队列进行多次调度。每次对队列进行调度时,网络设备将队列中存储的一个或多个报文排出队列,并向下一跳网络设备发送被排出队列的报文。这样,通过队列调度技术可以较为有效地缓解流量突发。
38.但是,网络设备每次调度能够排出队列的报文的总字节数是固定的,无法灵活地调整每次调度出队的报文的总字节数。这样,网络设备可能在一次调度中向下一跳网络设备发送大量报文,导致下一跳网络设备出现流量突发,影响下一跳网络设备的qos。
39.具体地,在队列调度技术中,网络设备可能在单位时间内进行一次或多次调度。网络设备在单位时间内调度的最大次数,与每次调度被网络设备排出队列的报文的总字节数的乘积等于网络设备在单位时间内排出队列的报文的总字节数,即网络设备的带宽。其中,上述每次调度被网络设备排出队列的报文的总字节数又被称为信用(credit)粒度。报文的字节数又可以被称为报文的长度,多个报文的总字节数为多个报文的长度之和。
40.但是,随着网络系统的升级,网络设备的带宽越来越高。但是,网络设备在单位时
间内调度的最大次数取决于网络设备的硬件配置,难以提升。因此,为了提高网络设备的带宽,每次调度被网络设备排出队列的报文的总字节数会相应地增加。也就是说,网络设备会在每次调度时将较多的报文排出队列并发往下一跳网络设备。而下一跳网络设备会在短时间内接收到大量报文。这样,如果网络设备的下一跳网络设备的处理能力有限,可能无法及时处理每次调度被排出队列的报文。如此,可能在下一跳网络设备产生流量突发,影响下一跳网络设备的qos。
41.下面结合图1做详细介绍。参见图1,该图为本技术实施例提供的系统100的一种结构示意图,在系统100中,包括设备111、设备112、网络设备121、网络设备122和网络设备123。其中,网络设备121分别与设备111和网络设备122连接,网络设备123分别与设备112和网络设备122连接。通过网络设备121、网络设备122和网络设备123,设备111可以向设备112发送数据流。为了便于介绍,网络设备122上与网络设备123连接的出接口被称为出接口a,设备111向设备112发送的数据流被称为数据流b。数据流b包括多个报文。
42.网络设备122上配置有队列调度功能。在接收到网络设备121发送的数据报文之后,网络设备122先将这些报文存储到队列中。接着,网络设备121按规律将队列中存储的报文出队。例如,网络设备121可以通过先进先出(first in first out,fifo)的方式调度队列中缓存的报文出队,并基于尾丢弃(drop tail)机制丢弃无法存储的报文。或者,如果网络设备122用于传输多条数据流,网络设备122可以设置有多个队列,不同队列对应不同数据流。网络设备122可以通过轮询调度等方式调度不同队列中存储的报文出队。
43.网络设备122上每次调度被排出队列的报文的总字节数根据网络设备122的最大带宽和单位时间内能够调度的最大次数确定。其中,网络设备122调度报文的最高频率取决于网络设备122的硬件配置,例如可以由网络设备122的时钟频率或晶振频率确定。举例说明,网络设备122可以监测时钟信号的翻转情况。时钟信号每经过一个周期,网络设备122对报文进行一次调度。这样,网络设备122调度报文的频率与时钟信号的频率相等。相应地,网络设备122的最大额定带宽等于网络设备122每秒调度报文排出队列的最大次数与每次调度被网络设备122排出队列的报文的总字节数。因此,在网络设备122的最大额定带宽确定后,每次调度被网络设备122排出队列的报文的总字节数也相应地确定。
44.目前,每次调度被网络设备122排出队列的报文的总字节数无法灵活地调整。如果网络设备122的实际带宽小于网络设备122的最大额定带宽,网络设备122可以减少每秒调度报文排出队列的次数。即,网络设备122的实际带宽等于网络设备122实际每秒调度报文排出队列的次数与每次调度被网络设备122排出队列的报文的总字节数。
45.假设网络设备122的每秒最多发送200兆字节(mega byte,mb)的报文,即网络设备122的带宽为200mb每秒(mb per second,mb/s)。如果网络设备122每秒最多可以进行2兆次调度,即网络设备122调度报文排出队列的频率为2m赫兹(hertz,hz),那么每次调度被排出队列的报文的总字节数为200
÷
2=100byte。这样,在达到网络设备122调度报文的最高频率(2mhz)之后,网络设备122的带宽达到网络设备122的最大额定带宽200mb。如果网络设备122的实际带宽为100mb/s,那么网络设备122调度报文排出队列的频率为100
÷
100=1mhz。
46.在上述例子中,网络设备122每次调度报文,都有100byte的报文被排出队列并发往网络设备123。但是,如果网络设备123处理报文的能力较差,或者网络设备123的资源被其他数据流占用,网络设备123可能无法在短时间内处理来自网络设备122的报文。这样,网
络设备123上出现流量突发,影响数据流b的正常传输。
47.举例说明。如果网络设备123还用于传输来自其他网络设备的报文,网络设备123的队列中存储有较多报文且空余的存储空间较少。那么网络设备123可能无法及时处理网络设备122发送的100byte的报文,影响从而影响到网络设备123的qos。例如,假设网络设备123还剩余60byte的存储空间,那么在接收到网络设备122发送的100byte的报文之后,网络设备123会丢弃其中50byte的报文。如此,增加了数据流b的丢包率,影响了qos。
48.为了解决上述提及的每次调度被排出队列的报文的总字节数过大的问题,本技术实施例提供了一种队列调度的方法及装置,旨在灵活调整每次调度被排出队列的报文的总字节数,进而避免下一跳网络设备的流量突发,提升网络系统的qos。
49.本技术实施例提供的队列调度的方法可以应用于图1所示的系统。具体地,可以由图1所示实施例中网络设备121、网络设备122、网络设备123中任意一个或多个网络设备执行。其中,所述网络设备可以是具有转发功能的设备,比如:路由器(router)、交换机(switch)等转发设备,还可以是服务器或者终端设备等具有转发功能的设备。
50.可选地,所述设备111和设备112可以是网络设备,也可以是终端设备。如果设备111和设备112中的任意一个设备为网络设备,那么该设备可以是用户边缘(customer edge,ce)。其中,终端设备可以称为用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)或终端等。终端设备是一种向用户提供语音和/或数据连通性的设备,或,设置于该设备内的芯片。例如,终端设备可以是具有无线连接功能的手持式设备、车载设备等。终端设备可以为手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,mid)、可穿戴设备、虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线终端或有线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端或支持5g接入的家庭网关设备(5g
→
residential gateway,5g
→
rg)等。
51.在一些可能的实现方式中,本技术实施例提供的队列调度方法也可以由接入设备执行。例如,该方法可以由具有bras功能的接入设备执行,用于对接入设备接收的、来自终端设备的报文进行调度。
52.参见图2,该图为本技术实施例提供的队列调度的方法的一种流程示意图,具体包括但不限于以下步骤s201-s203。
53.s201:队列调度装置确定第一带宽。
54.为了灵活调整每次调度被排出队列的报文的总字节数,队列调度装置先确定第一带宽。其中,队列调度装置为具有队列调度功能的设备上用于调度报文出队的模块,例如可以是网络设备上出接口对应的队列调度芯片。或者,队列调度装置也可以是软件模块,用于通过软件的方式调度队列中存储的报文排出队列。第一带宽指示出接口的报文出队列的速率。出接口为队列调度功能的设备上,与队列调度装置对应的网络接口。出接口对应一个或多个队列。
55.为了便于说明,出接口对应的队列被称为第一队列集合。也就是说,如果出接口对
应一个队列,第一队列集合包括一个队列。如果出接口对应多个队列,第一队列集合包括多个队列。相应地,队列调度装置用于调度第一队列集合中各个队列所存储的报文排出队列,并通过该出接口向下一跳网络设备发送。相应地,本技术实施例中所述的“排出队列”是指从第一队列集合中的队列中被排出队列,并通过出接口向下一跳网络设备发送。
56.在本技术实施例中,第一带宽可以是出接口的入队带宽,也可以是出接口的出队带宽。下面分别进行介绍。
57.实现方式一:第一带宽为出接口的入队带宽。
58.其中,出接口的入队带宽表示加入第一队列集合的数据流的带宽。相应地,第一带宽根据单位时间内加入第一队列集合的报文的总字节数确定。队列调度装置可以监控加入队列的报文的情况,记录每个加入队列的报文的字节数和报文加入队列的时间。这样,在确定第一带宽时,队列调度装置根据报文加入队列的时间和报文的字节数,确定单位时间内加入队列的报文的总字节数,得到第一带宽。
59.可选地,队列调度装置周期性判断每次调度被排出队列的报文的总字节数是否需要调整。相应地,队列调度装置可以周期性确定第一带宽。队列调度装置确定第一带宽的周围被称为调整周期。那么第一带宽根据上个调整周期内加入队列的报文的字节总数和调整周期的时长确定。第一带宽为出接口在上个调整周期的平均入队带宽。可以理解的是,在其它可能的实现方式中,第一带宽也可以是出接口的即时入队带宽。
60.实现方式二:第一带宽为出接口的出队带宽。
61.其中,出接口的出队带宽表示通过出接口发往下一跳网络设备的数据流的带宽,即被排出队列的报文对应的带宽。相应地,第一带宽根据单位时间内被从第一队列集合中排出队列的报文的总字节数确定。具体地,队列调度装置可以监控被排出第一队列集合的报文的情况,记录每个被排出队列的报文的字节数和报文被排出队列的时间。这样,在确定第一带宽时,队列调度装置根据报文被排出队列的时间和报文的字节数,确定单位时间内被排出队列的报文的总字节数,得到第一带宽。
62.与上述第一种可能的实现方式类似,如果第一带宽为出队带宽,队列调度装置也可以根据调整周期确定第一带宽。那么第一带宽根据上个调整周期内被从第一队列集合中排出队列的报文的总字节数确定。
63.第一带宽可以是队列调度装置计算得到的,也可以是其他设备向队列调度装置发送的。例如,如果队列调度装置为具有队列调度功能的设备上用于调整调度参数的模块,第一带宽可以是调度器模块或队列管理模块向队列调度装置发送的。有关调度参数的介绍可以参见下文,这里不再赘述。
64.s202:队列调度装置根据第一带宽与第一调度频率确定第一调度参数。
65.在获取到第一带宽之后,队列调度装置根据第一带宽与第一调度频率确定第一调度参数。其中,第一调度频率用于指示单位时间内的最大调度次数,第一调出参数用于指示每次调度被排出队列的报文长度。也就是说,第一调度频率对应前文所述的单位时间内调度的最大次数,第一调度参数对应前文所述的每次调度被排出队列的报文的总字节数。
66.根据前文介绍可知,设备的最大带宽等于单位时间内调度的最大次数与每次调度被排出队列的报文的总字节数的乘积。相应地,为了保证数据流的正常转发,第一调度频率与第一调度参数的乘积不小于第一带宽。也就是说,为了保证报文的正常转发,且降低对下
一跳网络设备的qos的影响,队列调度装置根据第一带宽与第一调度频率,确定与出接口的实际流量情况相匹配的第一调度参数。
67.根据前文介绍可知,如果每次调度被排出队列的报文的总字节数较大,可能造成下一跳网络设备的流量突发影响下一跳网络设备的qos。但是,如果每次调度被排出队列的报文的总字节数较小,出接口能够达到的最大带宽有限,可能报文的正常转发。因此,队列调度装置可以调大出接口对应的调度参数,也可以调小出接口对应的调度参数。相应地,在根据第一带宽与第一调度频率确定第一调度参数之前,队列调度装置可以先确定出接口的调度参数的调整方向。
68.在本技术实施例中,出接口可以根据第一带宽与第二带宽的大小关系确定出接口的调度参数的调整方向。其中,第二带宽根据第二调度参数与第一调度频率确定,第二调度参数为队列调度装置在第一时刻每次调度的报文长度。第一时刻为队列调度装置获取第一带宽的时刻。也就是说,第二调度参数为第一带宽对应的调度参数。如果队列调度装置根据调整周期确定第一带宽,那么第二调度参数为第一带宽对应的调整周期中,队列调度装置每次调度被排出队列的报文的字节总数。第二带宽可以等于第二调度参数与第一调度频率的乘积,也可以小于第二调度参数与第一调度频率的乘积。关于第二带宽的详细介绍可以参见后文,这里不再赘述。
69.通过比较第一带宽与第二带宽之间的大小关系,队列调度装置可以确定第一带宽大于或等于第二带宽,或者确定第一带宽小于第二带宽。下面以队列调度装置根据调整周期确定第一带宽为例,分别介绍第一带宽小于第二带宽与第一带宽大于或等于第二带宽两种情况下,队列调度装置确定第一调度参数的实现方式进行介绍。
70.情况一:第一带宽大于或等于第二带宽。
71.如果队列调度装置在上个调整周期内实际排出队列的报文的总字节数,大于或等于根据第一调度频率与第二调度参数确定的第二带宽,说明队列调度装置在上个调整周期内的负载较高。队列调度装置可以增加调度参数,以提高出接口在下个调整周期内的带宽。
72.如果第二带宽等于第二调度参数与第一调度频率的乘积,那么第二带宽表示在根据第二调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽。因此,如果第一带宽大于或等于第二带宽,说明队列调度装置在上个调整周期的调度频率已经达到或大于第一调度频率,出接口的带宽也已经达到或大于在第二调度参数下能够达到的最大带宽。那么如果继续根据第二调度参数调度第一队列集合中存储的报文排出队列,队列调度装置能够提供的最大带宽可能无法满足数据流传输的要求。因此,队列调度装置确定需要增加出接口的调度参数,以保证报文的正常传输。
73.可以理解的是,第二带宽等于第二调度参数与第一调度频率的乘积,且第一带宽大于第二带宽,那么第一带宽可以是出接口的入队带宽。队列调度装置通过上述实现方式一获取第一带宽。
74.考虑到网络环境可能较为复杂,在第一带宽达到第二带宽后再增加队列调度装置的调度参数的方案可能存在一定的滞后,无法及时匹配数据流的波动情况。为此,在一些可能的实现方式中,第二带宽可以小于第一调度频率与第二调度参数的乘积。
75.可以通过第一预设比例调整第二带宽,即第二带宽等于第二调度参数、第一调度频率与第一预设比例的乘积。其中第一预设比例为小于1的实数。那么第二带宽等于在根据
第二调度参数调度报文排出队列、且保证数据流的正常传输的条件下,队列调度装置能够达到的最大带宽。
76.在上述实现方式中,通过第一预设比例使得第二带宽小于第一调度频率与第二调度参数的乘积。可以理解的是,在本技术实施例中,也可以通过其他方式使得第二带宽小于第一调度频率与第二调度参数的乘积。例如,在一些其他可能的实现方式中,可以通过带宽修正值得到第二带宽。即第一调度频率与第二调度参数的乘积与带宽修正值之差为第二带宽。
77.这样,如果第一带宽大于或等于第二带宽,说明出接口的带宽已经达到在第二调度参数下能够保证数据流的正常传输的最大带宽。那么如果继续根据第二调度参数调度第一队列集合中存储的报文排出队列,队列调度装置能够提供的最大带宽可能无法满足数据流正常传输的要求。因此,队列调度装置确定需要增加出接口的调度参数,以保证报文的正常传输。
78.在确定需要增加出接口的调度参数之后,队列调度装置确定大于第二调度参数的第一调度参数。相应地,由于第一调度参数大于第二调度参数,第一调度参数与第一调度频率的乘积也大于第二调度参数与第一调度频率的乘积。也就是说,在根据第一调度参数调度报文排出队列的条件下队列调度装置能够达到的最大带宽,大于在根据第二调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽。这样,增加了队列调度装置能够提供的最大带宽,可以满足数据流的正常传输的需求。
79.在本技术实施例中,队列调度装置确定第一调度参数包括但不限于以下两种实现方式。
80.实现方式一:队列调度装置根据第一带宽与第一调度频率的比值确定第一调度参数。
81.如果第二带宽等于第一调度频率与第二调度参数的乘积,且第一带宽大于第二带宽,那么第一带宽与第一调度频率的比值大于第二调度参数。队列调度装置可以将第一带宽与第一调度频率的比值确定为第一调度参数。这样,在根据第一调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽能够达到第一带宽,可以满足传输数据流的传输的需求。
82.或者,如果第二带宽等于第一调度频率、第二调度参数与第一预设比例的乘积,且第一带宽大于第二带宽,那么队列调度装置可以将第一带宽与相除,并将得到的结果与第一预设比例第一调度频率的比值确定为第一调度参数。这样,由于第一预设比例小于一,第一带宽与第一预设比例相除得到的结果大于第一带宽,也大于第一调度频率与第二调度参数的乘积。也就是说,在根据第一调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽大于第一带宽,也能够保证数据流的正常传输。
83.可选地,为了保证网络的qos,队列调度装置可以在根据第一带宽与第一调度频率的比值确定第一调度参数之后,根据第一预设值增加第一调度参数。例如,如果第一调度参数不等于第一带宽与第一调度频率的比值,那么队列调度装置可以将第一带宽与第一调度频率的比值与第一预设值求和,并将求和得到的结果确定为第一调度参数。这样,在根据第一调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽大于第一带宽,即使数据流在下个调整周期出现了一定的波动,队列调度装置也能够满足数据流传输
的需求。
84.在实际的应用场景中,本技术实施例提供的队列调度装置为网络设备上的调度芯片。而调度芯片的数据处理能力有限,可能不足以满足将第一带宽与第一调度频率的比值作为第一调度参数调度第一队列集合中的报文排出队列的需求。因此,在一些可能的实现方式中,可以为出接口设置第一候选调度参数集合。第一候选调度参数集合包括多个不同的第一候选调度参数。在确定第一调度参数时,队列调度装置可以根据第一带宽与第一调度频率,从多个第一候选调度参数中确定第一调度参数。
85.具体地,队列调度装置先计算第一带宽与第一调度频率的比值。接着,队列调度装置从出接口对应的第一候选调度参数集合中选择大于第一带宽与第一调度频率的比值的第一候选调度参数作为第一调度参数。例如,队列调度装置可以将第一候选调度参数集合中大于第一带宽与第一调度频率的比值且最小的第一候选调度参数作为第一调度参数。这样,相当于在队列调度装置上预设多个档位的调度参数。在需要调整调度参数时,队列调度装置可以根据带宽与第一调度频率确定合适的档位。如此,既可以灵活地调整出接口的调度参数,也可以降低对队列调度装置的计算资源的需求。
86.可选地,上述第一带宽可以是出接口的入队带宽。
87.实现方式二:队列调度装置根据第二调度参数确定第一调度参数。
88.在第二种可能的实现方式中,队列调度装置根据第二调度参数确定第一调度参数。例如,队列调度装置可以将第二调度参数与第二预设值求和,并将求和得到的结果确定为第一调度参数。可选地,第二预设值和前述第一预设值可以相等。或者,队列调度装置也可以从第二候选调度参数集合中选择大于第二调度参数的第二候选调度参数作为第一调度参数。第二候选调度参数集合中包括多个第二候选调度参数。可选地,第二候选调度参数集合与第一候选调度参数集合可以是相同的集合。
89.情况二:第一带宽小于第二带宽。
90.如果队列调度装置在上个调整周期内实际排出队列的报文的总字节数,小于根据第一调度频率与第二调度参数确定的第二带宽,说明队列调度装置在上个调整周期内的负载较低。队列调度装置可以减小调度参数,以降低每次调度被排出队列的报文的总字节数,减少对下一跳网络设备的qos的影响。
91.在确定需要减小出接口的调度参数之后,队列调度装置确定小于第二调度参数的第一调度参数。在本技术实施例中,队列调度装置确定第一调度参数包括但不限于以下两种实现方式。
92.实现方式一:队列调度装置根据第一带宽与第一调度频率的比值确定第一调度参数。
93.与上述情况一中的实现方式一相似,队列调度装置可以根据第一带宽与第一调度频率的比值确定第一调度参数。由于第一带宽小于第二带宽,第一带宽与第一调度频率的比值也小于第二带宽与第一调度频率的比值,那么第一调度参数小于第二调度参数。如此,减小了出接口的调度参数,降低了每次调度被排出队列的报文的总字节数。
94.在一些可能的实现中,为了避免反复调整,队列调度装置可以根据第一带宽与第一调度频率的比值和调度参数修正值确定第一调度参数。即,队列调度装置先计算第一带宽与第一调度频率的比值,再将该比值与修正值求和,最后基于求和得到的结果确定第一
调度参数。例如队列调度装置可以将求和得到的结果确定为修正值,或者从第一候选调度参数集合中选择大于求和得到的结果且最小的第一候选调度参数作为第一调度参数。
95.可以理解的是,如果队列调度装置根据第一带宽与第一调度频率的比值确定第一调度参数,第一调度参数可以等于第二调度参数。那么队列调度装置可以不调整出接口的调度参数。
96.实现方式二:队列调度装置根据第二调度参数确定第一调度参数。
97.与上述情况二中的实现方式二相似,队列调度装置也可以根据第二调度参数确定第一调度参数。例如,队列调度装置可以将第二调度参数与第二预设值之差确定为第一调度参数。或者,队列调度装置可以从第三候选调度参数集合中选择小于第一调度参数且最大的第三候选调度参数作为第一调度参数。第三候选调度参数集合包括多个第三候选调度参数。可选地,第三候选调度参数集合与上述第一候选调度参数集合以及第二候选调度参数集合可以是相同的集合。
98.在上述介绍的实现方式中,队列调度装置根据第二带宽确定需要增加调度参数还是减小第二调度参数。即,增加调度参数的带宽,和用于减小调度参数的带宽相同。而在一些其他可能的实现中,用于增加调度参数的带宽,和用于减小调度参数的带宽不同。即,如果第一带宽大于第三带宽,队列调度装置增加出接口的调度参数;如果第一带宽小于第四带宽,队列调度装置减小出接口的调度参数。第三带宽大于第四带宽。可选地,第三带宽与第四带宽根据第二调度参数与第一调度频率确定。例如,第三带宽可以等于第二调度参数、第一调度频率和第一预设比例的乘积,第四带宽可以等于第二调度参数、第一调度频率和第二预设比例的乘积。其中第一预设比例大于第二预设比例,且第一预设比例小于一。
99.在上述介绍的实现方式中,队列调度装置通过比较第一带宽和第二带宽(或第三带宽、第四带宽)的大小关系确定调度参数的调整方向。而在一些其他可能的实现方式中,队列调度装置可以通过比较第二调度频率确定调度参数的调整方向。其中,第二调度频率为用于指示所述队列调度装置在单位时间内的实际调度次数。
100.具体地,队列调度装置可以比较第二调度频率和第三调度频率之间的大小关系。第三调度频率根据第一调度频率确定,例如可以等于第一调度频率,或者等于第一调度频率与频率修正值之差。
101.假设第三调度频率等于第一调度频率与频率修正值之差,且第二调度频率大于或等于第三调度频率,说明队列调度装置调度报文出队的频率较高。这样,假如出现了流量突发,队列调度装置可能无法提供足够的带宽以调度报文排出队列。因此,在确定第二调度频率大于或等于第三调度频率之后,队列调度装置可以确定需要增加出接口的调度参数。可以理解的是,队列调度装置也可以通过相似地方式确定需要减小出接口的调度参数。
102.在上述介绍的实现方式中,队列调度装置基于第二带宽或与第二带宽相关的参数确定第一调度参数。在一些其他可能的实现中,队列调度装置也可以基于第一带宽和第一调度频率确定第一调度参数。例如,队列调度装置可以在获取到第一带宽之后,计算第一带宽与第一调度频率的比值,并将计算得到的结果作为第一调度参数。也就是说,队列调度装置可以不比较第一带宽和第二带宽的大小,直接根据第一带宽与第一调度频率的比值确定第一调度参数。
103.s203:队列调度装置根据第一调度参数调度出接口的报文排出队列。
104.在确定第一调度参数之后,队列调度装置根据第一调度参数调度出接口的报文排出队列。即,在确定第一调度参数之后,每次调度被队列调度装置排出队列的报文的字节总数根据第一调度参数确定。
105.通过上述介绍可以看出,在本技术实施例中,队列调度装置首先获取第一带宽,接着,队列调度装置根据第一带宽与第一调度频率确定第一调度参数,并基于第一调度参数调度报文排出队列。也就是说,队列调度报文排出队列所用的第一调度参数,是根据报文实际加入(或排出)出接口对应的第一队列集合的速率确定的。这样,使得出接口的调度参数可以随着出接口的实际带宽灵活调整。如果出接口的带宽变小,队列调度装置可以减小出接口的调度参数。队列调度装置每次调度可以将较少的报文排出队列,减少了每次调度发往出接口对应的下一跳网络设备的报文的总字节数。那么下一跳网络设备不会在短时间内接收到超出该下一跳网络设备处理能力的报文,避免了流量突发,提升了网络系统的qos。如果出接口的带宽增大,队列调度装置可以增加出接口的调度参数。那么队列调度装置每次调度可以将更多的报文排出队列,增加了出接口的最大带宽。可见,基于出接口的实际带宽灵活调整调度参数,使得出接口的调度参数与出接口的实际流量相匹配。如此,在保证数据流正常传输的前提下,减小了每次调度被排出队列的报文的字节总数,能够更好地保证网络的qos。
106.下面结合图1所示的应用场景,对本技术实施例提供的队列调度的方法做进一步说明。为了便于说明,在下述实施例中,网络设备122上的队列调度装置根据调整周期执行本技术实施例提供的队列调度的方法,第一带宽为出接口的出队带宽,队列调度装置基于第二带宽确定调度参数的调整方向,第一预设比例为80%。另外,队列调度装置对应的第一调度频率为2mhz,最大额定带宽为200mb/s,调度参数修正值为5byte。
107.参见图3,图3为本技术实施例提供的队列调度的方法的一种方法流程图,具体包括但不限于以下步骤s301-s203。
108.s301:队列调度装置基于初始调度参数调度报文排出队列。
109.在首个调整周期内,队列调度装置可以基于初始调度参数调度报文排出队列。其中,初始调度参数可以是在队列调度装置上配置的调度参数。可选地,队列调度参数可以是队列调度装置对应的最大调度参数,例如可以为100byte。
110.也就是说,在首个调整周期内,网络设备122每次调度从出接口a向网络设备123发送总长度为100byte的报文。
111.s302:队列调度装置获取第一带宽。
112.在队列调度装置调度报文排出的过程中,队列调度装置可以监控从第一队列集合中的队列被调度出队的报文的情况。在当前调整周期结束之后,队列调度装置可以根据本调整周期内被调度出队的报文的总字节数和调整周期的时长确定第一带宽。
113.s303:队列调度装置判断第一带宽是否小于第二带宽。
114.在确定第一带宽之后,队列调度装置确定第一带宽和第二带宽的大小关系,判断第一带宽是否小于第二带宽。如果第一带宽小于第二带宽,队列调度装置执行s304。如果第一带宽大于或等于第二带宽,队列调度装置执行s305。
115.s304:响应于第一带宽小于第二带宽,队列调度装置确定第一调度参数。
116.如果第一带宽小于第二带宽,队列调度装置可以计算第一带宽与第一调度频率的
比值,并与修正值求和。接着,队列调度装置从第二候选调度参数集合中选择大于求和得到的结果且最小的第二候选调度参数作为第一候选调度参数。
117.例如,假设第二调度参数为50byte,第一带宽为30mb/s,且第二候选调度参数集合包括0byte、25byte、50byte、75byte和100byte五个第二候选调度参数。相应地,第二调度参数对应的第二带宽等于(50*2)*80%=80mb/s。由于第一带宽小于第二带宽,队列调度装置先计算第一带宽与第一调度频率的比值,再将上述比值与调度参数修正值求和,得到的结果为30
÷
2+5=20byte。最后从五个候选调度参数中选择大于20byte且最小的第二候选调度参数,即25byte,作为第一调度参数。
118.s305:响应于第一带宽大于或等于第二带宽,队列调度装置确定第一调度参数。
119.如果第一带宽大于或等于第二带宽,队列调度装置从第一候选调度参数集合中,选择大于第二调度参数且最小的第一候选调度参数作为第一调度参数。
120.例如,假设第二调度参数为50byte,第一带宽为90mb/s,第一候选调度参数集合中包括0byte、25byte、50byte、75byte和100byte五个候选调度参数。相应地,第二调度参数对应的第二带宽等于(50*2000000)*80%=80mb/s。由于第一带宽大于第二带宽,队列调度装置可以从第一候选调度参数集合选取大于50byte且最小的第一候选调度参数,即75byte,作为第一调度参数。
121.s306:队列调度装置基于第一调度参数调度报文排出队列。
122.在确定第一调度参数之后,队列调度装置在下个调整周期内基于第一调度参数调度报文排出队列,并重新统计第一带宽。在上述“下个调整周期”结束时,队列调度装置返回执行s302-s306。
123.举例说明。假设设备111发往设备112的数据流b的实际带宽为142mb/s。且在第i个(i为正整数)调整周期内,队列调度装置每次将总长度不大于50byte的报文排出队列,对应调度参数为50byte。
124.在第i个调整周期内,出接口a能够达到的最大带宽为50*2=100mb/s,小于数据流b的实际带宽为142mb/s。因此,第i个调整周期的第一带宽为出接口a能够达到的最大带宽100mb/s。由于第一带宽100mb/s大于第二带宽80mb/s,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于50byte的候选调度参数作为第i+1个调整周期内的调度参数。这样,在第i+1个调整周期内,队列调度装置每次将总长度不大于75byte的报文排出队列,对应调度参数为75byte。
125.在第i+1个调整周期内,出接口a能够达到的最大带宽为75*2=150mb/s,对应的第二带宽为150*0.8=120mb/s。由于出接口a能够达到的最大带宽大于数据流b的实际带宽,第i+1个调整周期的第一带宽为数据流b的实际带宽142mb/s。
126.由于第一带宽大于第二带宽,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于75byte的候选调度参数作为第i+2个调整周期内的调度参数。这样,在第i+2个调整周期内,队列调度装置每次将总长度不大于100byte的报文排出队列,对应调度参数为100byte。
127.在第i+2个调整周期内,出接口a能够达到的最大带宽为100*2=200mb/s,对应的第二带宽为200*0.8=160mb/s。由于出接口a能够达到的最大带宽大于数据流b的实际带宽,第i+1个调整周期的第一带宽为数据流b的实际带宽142mb/s。
128.由于第一带宽小于第二带宽,队列调度装置将第一带宽与第一调度频率相除,得到的结果为142
÷
2=71byte。接着,队列调度装置将得到的结果与修正值求和,得到的结果为71+5=76byte。接着,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于76byte的候选调度参数作为第i+3个调整周期内的调度参数。这样,在第i+3个调整周期内,队列调度装置每次将总长度不大于100byte的报文排出队列,对应调度参数为100byte。
129.假设在第i+3个调整周期内,数据流b的实际带宽从142mb/s变为20mb/s。那么i+4个调整周期内第一带宽为20mb/s,第二带宽为160mb/s。由于第一带宽小于第二带宽,队列调度装置将第一带宽与第一调度频率相除,得到的结果为20
÷
2=10byte。接着,队列调度装置将得到的结果与修正值求和,得到的结果为10+5=15byte。接着,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于15byte的候选调度参数作为第i+4个调整周期内的调度参数。这样,在第i+4个调整周期内,队列调度装置每次将总长度不大于25byte的报文排出队列,对应调度参数为25byte。
130.可见,通过本技术实施例提供的队列调度的方法,队列调度装置可以灵活调整每次调度被排出队列的报文的总字节数,使得每次调度被排出队列的报文的总字节数与出接口实际的带宽相匹配,从而在保证数据流的正常转发的前提下,避免了下一跳网络设备(即网络设备123的流量突发,提升了网络系统的qos。
131.参见图4,本技术实施例还提供了一种队列调度的装置400,该队列调度的装置400可以实现图2或图3所示实施例中队列调度装置的功能。该队列调度的装置400包括获取单元410和处理单元420。其中,获取单元410用于实现图2所示实施例中的s201,处理单元420用于实现图2所示实施例中的s202和s203。
132.具体的,获取单元410,用于确定第一带宽,所述第一带宽指示出接口的报文出队列的速率。
133.处理单元402,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
134.具体执行过程请参考上述图2或图3所示实施例中相应步骤的详细描述,这里不再一一赘述。
135.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,调度单元和判断单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
136.图5是本技术实施例提供的一种设备500的结构示意图。上文中的队列调度的装置400可以通过图5所示的设备来实现。参见图5,该设备500包括至少一个处理器501,通信总线502以及至少一个网络接口504,可选地,该设备500还可以包括存储器503。
137.处理器501可以是一个通用中央处理器(central processing unit,cpu)、特定应用集成电路(application-specific integrated circuit,asic)或一个或多个用于控制本技术方案程序执行的集成电路(integrated circuit,ic)。处理器可以用于对报文、队列
以及调度参数进行处理,以实现本技术实施例中提供的队列调度的方法。
138.比如,当图2中的队列调度装置通过图5所示的设备来实现时,该处理器可以用于,确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;处理单元,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
139.通信总线502用于在处理器501、网络接口504和存储器503之间传送信息。
140.存储器503可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,存储器503还可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器503可以是独立存在,通过通信总线502与处理器501相连接。存储器503也可以和处理器501集成在一起。
141.可选地,存储器503用于存储执行本技术实施例提供的技术方案的程序代码或指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的程序代码或指令。程序代码中可以包括一个或多个软件模块。可选地,处理器501也可以存储执行本技术实施例提供的技术方案的程序代码或指令,在这种情况下处理器501不需要到存储器503中读取程序代码或指令。
142.网络接口504可以为收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(ran)或无线局域网(wireless local area networks,wlan)等。在本技术实施例中,网络接口504可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。网络接口504可以为以太接口(ethernet)接口、快速以太(fast ethernet,fe)接口或千兆以太(gigabit ethernet,ge)接口等。
143.在具体实现中,作为一种实施例,设备500可以包括多个处理器,例如图5中所示的处理器501和处理器505。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
144.图6是本技术实施例提供的一种设备600的结构示意图。图2或图3中的队列调度装置可以通过图6所示的设备来实现。参见图6所示的设备结构示意图,设备600包括主控板和一个或多个接口板。主控板与接口板通信连接。主控板也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板包括cpu和存储器,主控板负责对设备600中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线处理单元(line processing unit,lpu)或线卡(line card),用于接收和发送报文。在一些实施例中,主控板与接口板之间或接口板与接口板之间通过总线通信。在一些实施例中,接口板之间通过交换网板通信,在这种情况下设备600也包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称
为交换网板单元(switch fabric unit,sfu)。接口板包括cpu、存储器、转发引擎和接口卡(interface card,ic),其中接口卡可以包括一个或多个网络接口。网络接口可以为ethernet接口、fe接口或ge接口等。cpu与存储器、转发引擎和接口卡分别通信连接。存储器用于存储转发表。转发引擎用于基于存储器中保存的转发表转发接收到的报文,如果接收到的报文的目的地址为设备600的ip地址,则将该报文发送给主控板或接口板的cpu进行处理;如果接收到的报文的目的地址不是设备600的ip地址,则根据该目的地查转发表,如果从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。转发引擎可以是网络处理器(network processor,np)。接口卡也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧,并对数据帧进行合法性检查后转发给转发引擎处理或接口板cpu。在一些实施例中,cpu也可执行转发引擎的功能,比如基于通用cpu实现软转发,从而接口板中不需要转发引擎。在一些实施例中,转发引擎可以通过asic或现场可编程门阵列(field programmable gate array,fpga)实现。在一些实施例中,存储转发表的存储器也可以集成到转发引擎中,作为转发引擎的一部分。
145.本技术实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述图2或图3所示实施例中队列调度装置执行的队列调度的方法。
146.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
147.示例性的,该芯片系统可以是fpga,可以是asic,还可以是系统芯片(system on chip,soc),还可以是cpu,还可以是np,还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
148.应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
149.本技术实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由队列调度装置执行的队列调度的方法。
150.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由队列调度装置执行的队列调度的方法。
151.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限
于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
152.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
153.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑模块划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
154.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要获取其中的部分或者全部单元来实现本实施例方案的目的。
155.另外,在本技术各个实施例中的各模块单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件模块单元的形式实现。
156.所述集成的单元如果以软件模块单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
157.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
158.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。
159.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种队列调度的方法,其特征在于,所述方法包括:队列调度装置确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;所述队列调度装置根据所述第一调度参数调度所述出接口的报文排出队列。2.根据权利要求1所述的方法,其特征在于,在确定所述第一调度参数之前,所述方法还包括:所述队列调度装置确定所述第一带宽与第二带宽匹配,所述第二带宽根据第二调度参数和所述第一调度频率确定,所述第二调度参数为所述队列调度装置在第一时刻每次调度的报文长度,所述第一时刻为所述队列调度装置获取所述第一带宽的时刻。3.根据权利要求2所述的方法,其特征在于,所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数包括:响应于所述第一带宽小于所述第二带宽,所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数,所述第一调度参数小于所述第二调度参数。4.根据权利要求3所述的方法,其特征在于,所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数包括:所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定第三调度参数;所述队列调度装置根据所述第三调度参数,从第一候选调度参数集合中确定所述第一调度参数,所述第一候选调度参数集合包括多个第一候选调度参数,所述第一调度参数为所述第一候选调度参数集合中不小于所述第三调度参数的第一候选调度参数。5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一带宽根据从所述出接口被调度出队的报文长度确定,或,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口。6.根据权利要求2所述的方法,其特征在于,所述第一带宽根据从所述出接口被调度出队的报文长度确定,所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数包括:响应于所述第一带宽不小于所述第二带宽,所述队列调度装置根据所述第二调度参数确定所述第一调度参数,所述第一调度参数大于所述第二调度参数。7.根据权利要求6所述的方法,其特征在于,所述队列调度装置根据所述第二调度参数确定所述第一调度参数包括:所述队列调度装置根据所述第二调度参数,从第二候选调度参数集合中确定所述第一调度参数,所述第二候选调度参数集合包括多个第二候选调度参数,所述第一调度参数为所述第二候选调度参数集合中不小于所述第二调度参数的第二候选调度参数。8.根据权利要求6所述的方法,其特征在于,所述队列调度装置根据所述第二调度参数确定所述第一调度参数包括:所述队列调度装置根据所述第二调度参数和预设步长之和确定所述第一调度参数。9.根据权利要求2所述的方法,其特征在于,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口,所述队列调度装置根据所述第一带宽与
第一调度频率确定第一调度参数包括:响应于所述第一带宽不小于所述第二带宽,所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数。10.根据权利要求6-9任一项所述的方法,其特征在于,所述队列调度装置确定所述第一带宽与第二带宽匹配包括:所述队列调度装置确定第二调度频率不小于第三调度频率,所述第二调度频率用于指示所述队列调度装置在单位时间内的实际调度次数,所述第三调度频率根据所述第一调度频率确定。11.一种队列调度装置,其特征在于,所述装置包括:获取单元,用于确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;处理单元,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。12.根据权利要求11所述的装置,其特征在于,所述处理单元,具体用于确定所述第一带宽与第二带宽匹配,所述第二带宽根据第二调度参数和所述第一调度频率确定,所述第二调度参数为所述队列调度装置在第一时刻每次调度的报文长度,所述第一时刻为所述队列调度装置获取所述第一带宽的时刻。13.根据权利要求12所述的装置,其特征在于,所述处理单元,具体用于响应于所述第一带宽小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数,所述第一调度参数小于所述第二调度参数。14.根据权利要求13所述的装置,其特征在于,所述处理单元,具体用于根据所述第一带宽和所述第一调度频率的比值确定第三调度参数;根据所述第三调度参数,从第一候选调度参数集合中确定所述第一调度参数,所述第一候选调度参数集合包括多个第一候选调度参数,所述第一调度参数为所述第一候选调度参数集合中不小于所述第三调度参数的第一候选调度参数。15.根据权利要求11-14任一项所述的装置,其特征在于,所述第一带宽根据从所述出接口被调度出队的报文长度确定,或,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口。16.根据权利要求12所述的装置,其特征在于,所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第二调度参数确定所述第一调度参数,所述第一调度参数大于所述第二调度参数。17.根据权利要求16所述的装置,其特征在于,所述处理单元,具体用于根据所述第二调度参数,从第二候选调度参数集合中确定所述第一调度参数,所述第二候选调度参数集合包括多个第二候选调度参数,所述第一调度参数为所述第二候选调度参数集合中不小于所述第二调度参数的第二候选调度参数。18.根据权利要求16所述的装置,其特征在于,所述处理单元,具体用于根据所述第三调度参数和预设步长之和确定所述第一调度参数。
19.根据权利要求12所述的装置,其特征在于,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口,所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数。20.根据权利要求16-19任一项所述的装置,其特征在于,所述处理单元,具体用于确定第二调度频率不小于第三调度频率,所述第二调度频率用于指示所述队列调度装置在单位时间内的实际调度次数,所述第三调度频率根据所述第一调度频率确定。21.一种第一设备,其特征在于,所述第一设备包括处理器和存储器,所述存储器用于存储指令或程序代码,所述处理器用于从存储器中调用并运行所述指令或程序代码,以执行如权利要求1-10任一项所述的队列调度的方法。22.一种芯片,其特征在于,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行如权利要求1-10任一项所述的队列调度的方法。23.一种计算机可读存储介质,其特征在于,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机执行如权利要求1-10任一项所述的队列调度的方法。
技术总结
本申请提供了一种队列调度的方法及装置,旨在灵活调整每次调度被排出队列的报文的总字节数,提升网络系统的QoS。其中,所述队列调度的方法包括:队列调度装置确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;所述队列调度装置根据所述第一调度参数调度所述出接口的报文排出队列。出接口的报文排出队列。出接口的报文排出队列。
技术研发人员:张周 张雄为
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.16
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种基于混合式的跟踪注册方法与流程 下一篇:一种台阶爆破角平分线布孔方法与流程