CN1855886A - 用于监控和改进排队调度器性能的方法和设备 - Google Patents

用于监控和改进排队调度器性能的方法和设备 Download PDF

Info

Publication number
CN1855886A
CN1855886A CNA2006100711530A CN200610071153A CN1855886A CN 1855886 A CN1855886 A CN 1855886A CN A2006100711530 A CNA2006100711530 A CN A2006100711530A CN 200610071153 A CN200610071153 A CN 200610071153A CN 1855886 A CN1855886 A CN 1855886A
Authority
CN
China
Prior art keywords
data
time period
schedule
period length
average
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006100711530A
Other languages
English (en)
Inventor
J·卢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel CIT SA
Alcatel Lucent NV
Original Assignee
Alcatel NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel NV filed Critical Alcatel NV
Publication of CN1855886A publication Critical patent/CN1855886A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了方法和设备来通过优选地自动调整WFQ日程表的结构以监控和改进排队调度器的性能,所述排队调度器例如使用WFQ日程表的排队调度器。可以使用实时日程表监控(RTCM)机来实现这样的设备。RTCM机优选地包含日程表信息收集器(CIC)和子日程表分辨率计算器(SCRC)。例如通过CIC和SCRC分几个阶段来执行该方法。例如,在第一阶段,SCRC向CIC发布监控命令。在第二阶段,CIC收集日程表信息。在第三阶段,SCRC计算子日程表的调整的时间段长度。在第四阶段,CIC接收子日程表的调整的时间段长度并且将所述调整的时间段长度应用到子日程表上。

Description

用于监控和改进排队调度器性能的方法和设备
技术领域
本发明通常涉及通信网络,具体涉及通信网络中的排队和调度。
背景技术
网络上数据的通信典型地包含运用队列的网络单元。到达网络单元的数据放置在队列中直到该数据由网络单元发送。典型地使用公平排队(FQ)来尝试通过对不同的流提供单独的队列以在正传送的数据流中实现一些公平思想。加权公平排队(WFQ)是FQ的改进,通过试图在用户之间实现公平来促进那个目标,其中用户可以包括流源、流目的地、流的源-目的地分组,和/或在正在传送的数据的起点或使用中伴随的计算过程。这样的技术对于提高可用带宽的公平分配、对于使用小于其全部共享带宽的流和/或用户的低延迟,和/或对于免受不正常流和/或用户的影响方面来说是有益的。
对于放置在若干队列中的业务数据,例如执行诸如WFQ的FQ的若干流的数据,提供调度器以调度数据的出列。当大量的队列共享同一链路并且被提供用于仲裁时,WFQ可以有益地作为日程表实现。WFQ日程表的执行显著地影响了诸如延迟和抖动的特性。此外,WFQ日程表的性能取决于业务模式和日程表结构。尽管特定结构的WFQ日程表可以为一组具有特定属性的数据流提供可接受的性能,但是其有可能对另一组具有不同属性的数据流并不合适。
WFQ调度器已经广泛运用于异步传输模式(ATM)和互联网协议(IP)网络,并且已经证实它们的使用对改进网络性能和实现较好的服务质量保证是实用的方法。随着虚拟专用网(VPN)的不断使用,WFQ调度器将会在网络中起到日益重要的作用。
有多种方法来实现WFQ,支持具有多种带宽要求和不同分组大小的大量队列的普遍方法是使用日程表结构。由于每虚电路(每VC)调度提供在大量队列中的仲裁,基于日程表的WFQ调度器(也就是WFQ日程表)通常用于每VC调度。由于日程表展现粒度,任何WFQ日程表都会有执行错误。
最重要的错误之一是碰撞错误。当在同一日程表时间段上调度大量分组时可能发生碰撞错误,并且这将引入延迟变化(即抖动)。为了使碰撞错误最小化,用精确的分辨率来设计日程表。然而,具有较精确的分辨率的日程表要求较大的存储器来实现。另外,如果要求业务路由器支持大量的信道、等级和聚合队列,在这样的业务路由器中可能需要大量的WFQ日程表。出于这些原因,对于WFQ日程表粒度的精确程度强加了实际限制。为了使用有限的资源来实现最好的性能,WFQ日程表被构造为大量的不同粒度的子日程表,由于较低带宽队列能容忍相对较大的延迟变化,所以给较大的带宽以较精确的粒度。然而,这样的WFQ日程表一旦建立,其结构基本上就固定了。虽然其子日程表的构造和其不同的粒度可以为一组具有特定属性的数据流提供可接受的性能,但是这样的构造可能对另一组具有不同属性的数据流来说可能是不合适的。因此,需要一种技术来克服这些缺陷。
发明内容
本发明提供了方法和设备来通过优选地自动调整WFQ日程表的结构以监控和改进排队调度器的性能,所述排队调度器例如使用WFQ日程表的排队调度器。可以使用实时日程表监控监控(RTCM)机来实现这样的设备。RTCM机优选地包含日程表信息收集器(CIC)和子日程表分辨率计算器(SCRC)。可以例如通过CIC和SCRC在若干阶段内来执行这样一种方法。例如,在第一阶段,SCRC发布监控命令到CIC。在第二阶段,CIC收集日程表信息。在第三阶段,SCRC计算子日程表调整的时间段长度。在第四阶段,CIC接收子日程表的调整的时间段长度并且将该调整的时间段长度应用到子日程表。
因此,通过优选地动态且自动定制每个独立日程表和改变日程表结构,使用这样的方法和/或设备可以减少碰撞错误。WFQ日程表的碰撞错误取决于下面三个因素:(1)在该日程表上的队列数量;(2)每个队列的配置加权;和(3)每个队列的业务模式(例如,分组长度和分组序列)。这三个因素对不同的WFQ日程表来说是不同的,因此根据这些因素WFQ日程表优选具有其自己的结构。为了更有利,WFQ子日程表的日程表时间段的长度应当可调。此外,由于队列的业务模式是动态的并且在不同的时间或位置是不同的,因此应该监控业务模式以便确定最佳日程表结构。为了使这样的监控和调整的实际作用最大化,优选地使用自动方案,所述自动方案例如能够监测日程表的状态并基于该监测的信息来自动调整子日程表的时间段长度的机器。
碰撞延迟变化能影响使用多层WFQ日程表排队的公平性。通常,如果在每个日程表上的数据量是平均分配的,则WFQ日程表将对所有的分组粗略地实现公平延迟变化。公平延迟变化意味着延迟变化与分组大小成比例并且与队列带宽成反比。RTCM机对实现公平延迟变化的目标是有用的。
附图说明
通过参考附图可以更好的理解本发明,而且其特征对于本领域内的技术人员会变得很明显。
图1是说明根据本发明至少一个实施例的实时日程表监控(RTCM)机的方框图。
图2是说明根据本发明至少一个实施例用于监控和改进排队调度器性能的方法流程图。
图3是说明根据本发明至少一个实施例的日程表信息收集器(CIC)的数据结构框图。
图4是说明根据本发明至少一个实施例的设备的CIC结构框图。
图5是说明根据本发明至少一个实施例的4层32时间段WFQ日程表框图。
图6A和6B是说明根据本发明至少一个实施例的方法实例的流程图。
图7说明可以用于实现根据本发明至少一个实施例的设备的处理器实例的框图。
在不同图中相同的附图标记表示相似或同一物体。
具体实施方式
图1是说明根据本发明至少一个实施例的RTCM机的方框图。RTCM中使用的词“实时”应当理解为意味着RTCM能够执行至少一个日程表的重新配置,同时使用RTCM的系统可用于处理正在网络中进行传送的数据。例如,在数据正被传送的同时,RTCM可以执行数据监控。再举个例子,在数据正被传送的同时,RTCM也可以执行时间段长度调整的决定。又如另一个例子,时间段长度调整所属的日程表为空时,RTCM可以使时间段长度调整应用到该日程表。
RTCM机100包含可以在数据板104中实现的CIC102以及可以在控制板105中实现的SCRC103。SCRC103耦合到CIC102,CIC102优选地能够访问每个WFQ日程表101。CIC102监控WFQ日程表101的状态。SCRC103向CIC102发布监控参数,并且从CIC102接收聚集的日程表信息。SCRC103还计算子日程表的最佳时间段长度,并且将对子日程表的时间段长度的调整发送到CIC102。CIC102随后通过根据所述调整更新WFQ日程表101的时间段长度来实现所述调整。
图2是说明根据本发明的至少一个实施例监控和改进排队调度器性能的方法流程图。该方法包含四个阶段。在阶段201,SCRC103向CIC102发布监控命令。在阶段202,CIC102收集日程表信息。在阶段203,SCRC103计算子日程表的调整的时间段长度。在阶段204,CIC102接收子日程表的调整的时间段长度并且将所述调整的时间段长度应用到子日程表上。优选地,顺序执行这四个阶段。
在阶段201,SCRC建立包含日程表标识符和监控时间和/或监控周期的RTCM机参数列表。同样,SCRC103优选地能够在CIC102中重新设置“经过的时间指针”。根据RTCM机参数列表,SCRC更新RTCM机中的“监控日程表ID”、“RTCM的开始时间”、“RTCM的结束时间”以及“RTCM的启动信号”。
在阶段202,当设置了“RTCM的启动信号”并且“经过的时间指针”等于“RTCM的开始时间”时,CIC102开始监控日程表。每当分组逗留在监控的日程表中,在该分组所逗留的时间段中“累积的数据量”要加上该分组的长度。每当分组逗留在监控的日程表中,如果在该时间段中的实际数据量大于该时间段的“最大数据量”,则将“在每个时间段中的最大数据量”更新为该时间段的实际数据量。请注意在该时间段中的实际数据量是通过从“该时间段累积的服务的数据量”减去“该时间段累积的数据量”而获得。每当分组逗留在该监控的日程表中,如果实际调度周期大于寄存器中的“最大调度周期”,则更新“最大调度周期”。每当分组从监控的日程表发出,发出该分组的该时间段的“累积的服务的数据量”要减去该分组长度。当“RTCM的结束时间”到达时,CIC102能停止工作。CIC102向SCRC103给出中断信号以指示获得了所请求的日程表信息。
在阶段203,SCRC103检查其是否需要基于“最大调度周期”调整总的日程表长度。SCRC103将使用下面的公式来调整最低分辨率的子日程表的时间段长度。为了简化执行过程,子日程表的时间段长度优选地是2的幂,因此表示最低分辨率子日程表的时间段长度的Rm上舍入到最接近的2的幂。
同样作为阶段203的一部分,SCRC103检查其是否需要基于“每个时间段的累积数据量”或“每个时间段的最大数据量”调整子日程表的时间段长度。调整的两个选项如下:(1)调整支持高带宽队列的子日程表的时间段长度以及(2)调整支持低带宽队列的子日程表的时间段长度。在附图中显示了关于调整4级32时间段WFQ日程表的子日程表的时间段长度的实例。
在阶段204中,子日程表的已修改时间段长度被写入CIC102。在监控的WFQ日程表变为空后应用该修改的时间段长度。
根据上面描述的四个阶段来确定和应用子日程表调整的时间段长度。对于任何给定的日程表,可以运行RTCM机和/或定期或者不定期地重复执行上面四个阶段。例如,该过程不必每个小时或每天发生。由于碰撞错误的最坏情况发生在拥塞期间,仅仅在忙的时期和忙的时刻监控日程表。对于在日常基础上不会改变很多的典型业务模式,一旦调整了子日程表的时间段长度,在相当长的时间内,例如几周、几月甚至更长,将不需要对其进行重新调整。
任何条件变化都可以作为导致运行诸如RTCM机的设备或者执行方法的促进因素。例如,可以设置拥塞阈值并且可以监控拥塞。如果拥塞超过了阈值,则例如通过调整一个或多个子日程表的一个或多个时间段长度来使得该方法或设备重新配置一个或多个日程表。可以设置碰撞延迟变化阈值并且可以监控碰撞延迟变化。如果该碰撞延迟变化超过该阈值,则可以使该方法或设备重新配置一个或多个日程表。可以设置最大调整时间间隔期限。如果自从调整设备的上一次操作或调整方法的上一次运行以来的时间超过了最大调整时间间隔期限,则可以使该设备或方法重新配置一个或多个日程表。如果重新配置将产生与先前设定的日程表具有同样配置的日程表(即,由于该日程表已经被配置为所确定的最佳值,在配置上不会有变化),实际的日程表重新配置不需要作为重新配置过程的一部分来发生。
图3是说明根据本发明至少一个实施例的设备的CIC数据结构框图。数据结构300包含每时间段信息301、每日程表信息302和控制信息303。每时间段信息301是监控的日程表的每个时间段的信息并且可以包含例如每个时间段上的累积数据量、在每个时间段上累积的接收数据量和在服务期间每个时间段上的最大数据量。每日程表信息302是监控的日程表的信息并且可以包含例如最大调度周期、子日程表时间段长度和时间段数量以及经过时间的指针。控制信息303是用于控制RTCM机操作的信息,并且可以包含例如RTCM机的启动信号、RTCM机的开始时间、RTCM机的结束时间、监控日程表标识符、重置经过时间指针和每个子日程表的理想日程表时间段长度、其启动信号以及日程表标识符。
图4说明根据本发明至少一个实施例的设备的CIC结构的框图。在该例子中,CIC407包含微处理器访问接口404、监控单元403、内部存储器401和寄存器402。微处理器访问接口404耦合到存储器访问模块405并且可以与其双向通信。监控单元403耦合到WFQ日程表单元406并且可以与其双向通信。
在CIC407中提供的存储器401和寄存器402可以相当小(例如几千位的存储器和几十位的寄存器)或者可以更大。此外,用于执行CIC407的逻辑不必很复杂(例如,该逻辑可以包含一对计数器等)。
SCRC能够令人满意地用小存储器来运行以存储RTCM机参数(例如几千字节的存储器)。此外,SCRC只需消耗极少的处理器时间,并且由SCRC使用处理器时间的那个处理过程可以作为低优先级任务来执行。
由于RTCM机能够有助于使碰撞延迟变化最小化,因此其能够有助于改进基于日程表的调度器的性能。此外,RTCM机能够收集日程表信息并且自动调整子日程表的时间段长度,因而以接近实时的方式来运行。此外,可以使用最少的资源来运行RTCM机,所述最少的资源例如几千位的存储器、几十位的寄存器、微处理器访问接口和一些计数器。同样,CIC102和SCRC103是不需要与其它功能块进行许多交互的部件。因此,即使在CIC102或SCRC103中发生故障的情况下,其它部件的功能基本上不受影响。
RTCM机能够提供对日程表上的业务模式的理解。由于日程表作为路由器/交换机中的业务聚集点来处理,这样的理解提供了对一些业务聚集点上的业务模式的认识。因此,可以有利地运用RTCM机以帮助执行关于网络的统计研究。
很难完全理解影响调度器性能的WFQ日程表的特性,原因在于其复杂性。可以有利地运用RTCM机,例如在实验室环境中简化WFQ日程表的测试和故障排除。除实验室以外,可以有利地运用RTCM机以改进交换和路由设备的WFQ性能。
可以使用可配置参数来执行RTCM机或者来控制用于监控和改进排队调度器的性能的过程。例如,可以提供RTCM机是否启用或者禁用的选项来允许对于RTCM机的选择和取消选择。正如另一个例子,可以提供何时激活RTCM机的选项以便允许控制RTCM机的运行。
图5是说明根据本发明至少一个实施例的4层32时间段WFQ日程表的框图。4层32时间段WFQ日程表500包含层501、502、503和504。与最高分辨率的子日程表对应的层501包含时间段505。与第二高分辨率的子日程表对应的层502包含时间段506。与第二低分辨率的子日程表对应的层503包含时间段507。与最低分辨率的子日程表对应的层504包含时间段508。子日程表的时间段长度是可调的。下面的伪码显示了如何基于服务时间段期间的每个日程表时间段中的数据量来调整时间度长度。调整的概念是使逗留在每个日程表时间段上的数据量等于在该服务时间段期间的数据量。
Rx:表示子日程表x的初始时间段长度,其中x是0与3之间的整数并且指示子日程表0、1、2和3。子日程表0、1、2、3分别指最高、第二高、第二低、最低分辨率的子日程表。
R′x:表示Rx的调整值。
ideal_data:是指在服务时间段期间的每个日程表时间段中的理想数据。
average_datax:是指在服务时间段期间的子日程表x的每个日程表时间段中的平均数据。
average_data′x:是指average_datax的调整值。
favor_hibw:是指如果其为真,则调度器支持高带宽队列;否则,调度器支持低带宽队列。
——确定ideal_data
ideal _ data = average _ data 0 · R 3 / R 0 + average _ data 1 · R 3 / R 1 + average _ data 2 · R 3 / R 2 + average _ data 3 R 3 / R 0 + R 3 / R 1 + R 3 / R 2 + 1
——确定R′0
——初始化
average_data′0=average_data0
average_data′1=average_data1
average_data′2=average_data2
average_data′3=average_data3
R′0=R0
R′1=R1
R′2=R2
R′3=R3
if((average_data0<ideal_data){
while(average_data0<ideal_data){
R′0=2·R′0
average _ data 0 tmp 1 = average _ data 0 ′
average _ data 1 tmp 1 = average _ data 1 ′
average _ data 2 tmp 1 = average _ data 2 ′
average _ data 3 tmp 1 = average _ data 3 ′
if(R′0≤R1)then
average _ data 0 ′ = R 0 ′ R 0 · average _ data 0 ′ + R 0 ′ R 1 · average _ data 1 ′
average _ data 1 ′ = R 1 - R 0 ′ R 1 · average _ data 1 ′
average_data′2=average_data′2
average_data′3=average_data′3
else if(R′0≤R2)then
average _ data 0 ′ = R 0 ′ R 0 average _ data 0 ′ + R 0 ′ R 1 · average _ data 1 ′ + R 0 ′ R 2 · average _ data 2 ′
average_data′1=0
average _ data 2 ′ = R 2 - R 0 ′ R 2 · average _ data 2 ′
average_data′3=average_data′3
else if(R′0≤R3){
+ R 0 ′ R 3 · average _ data 3
average_data′1=0
average_data′2=0
average _ data 3 ′ = R 3 - R 0 ′ R 3 · average _ data 3
}
}
}
else if(average_data0>ideal_data){
while(average_data′0>ideal_data′){
R 0 ′ = 1 2 · R 0 ′
average _ data 0 tmp 1 = average _ data 0 ′
average _ data 1 tmp 1 = average _ data 1 ′
average _ data 3 tmp 1 = average _ data 3 ′
average_data′3=average_data′3
average_data′2=average_data′2
average _ data 1 ′ = average _ data 1 ′ + R 1 R 0 · ( 1 - R 0 ′ R 0 ) · average _ data 0 ′
average _ data 0 ′ = 1 2 · average _ data 0 ′
}
else{
R′0=R0
                   average_data′0=average_data0
average_data′1=average_data1
average_data′2=average_data2
average_data′3=average_data3
}
if(favor_hibw=True and R′0>R0){
R 0 ′ = R 0 ′ 2
average _ data 0 ′ = average _ data 0 tmp 1
average _ data 1 ′ = average _ data 1 tmp 1
average _ data 2 ′ = average _ data 2 tmp 1
average _ data 3 ′ = average _ data 3 tmp 1
}
else if(favor_hibw=False and R′0<R0){
R′0=2·R′0
average _ data 0 ′ = average _ data 0 tmp 1
average _ data 1 ′ = average _ data 1 tmp 1
average _ data 2 ′ = average _ data 2 tmp 1
average _ data 3 ′ = average _ data 3 tmp 1
}
——计算新的ideal_data
ideal _ dat a ′ = average _ da ta 1 ′ · R 3 / R 1 + average _ dat a 2 ′ · R 3 / R 2 + average _ da ta 3 ′ R 3 / R 1 + R 3 / R 2 + 1
if(average_data′1<ideal_data′){
while(average_data′1<ideal_data){
R′1=2·R′1
average _ data 1 tmp 1 = average _ data 1 ′
average _ data 2 tmp 1 = average _ data 2 ′
average _ data 3 tmp 1 = average _ data 3 ′
if(R′1≤R2){
average _ data 1 ′ = R 1 ′ R 1 average _ data 1 ′ + R 1 ′ R 2 · average _ data 2 ′
average _ data 2 ′ = R 2 - R 1 ′ R 2 · average _ data 2 ′
average_data′3=average_data′3
}
else if(R′1≤R3){
average _ data 1 ′ = R 1 ′ R 1 · average _ data 1 ′ + R 1 ′ R 2 · average _ data 2 ′
+ R 1 ′ R 3 · average _ data 3 ′
average_data′2=0
average _ data 3 ′ = R 3 - R 1 ′ R 3 · average _ data 3 ′
}
}
              }
else if(average_data′1>ideal_data′){
while(average_data′1>ideal_data){
R 1 ′ = 1 2 · R 1 ′
average _ data 1 tmp 1 = average _ data 1 ′
average _ data 2 tmp 1 = average _ data 2 ′
average _ data 3 tmp 1 = average _ data 3 ′
average_data′3=average_data3
average _ data 2 ′ = average _ data 2 + R 2 R 1 · ( 1 - R 1 ′ R 1 ) · average _ data 1 ′
average _ data 1 ′ = 1 2 · average _ data 1 ′
}
             }
           else{
R′1=R1
average_data′1=average_data1
average_data′2=average_data2
average_data′3=average_data3
            }
if(favor_hibw=True and R′1>R1){
R 1 ′ = R 1 ′ 2
average _ data 1 ′ = average _ data 1 tmp 1
average _ data 2 ′ = average _ data 2 tmp 1
average _ data 3 ′ = average _ data 3 tmp 1
              }
           else if(favor_hibw=False and R′1<R1){
R′1=2·R′1
average _ data 1 ′ = average _ data 1 tmp 1
average _ data 2 ′ = average _ data 2 tmp 1
average _ data 3 ′ = average _ data 3 tmp 1
              }
——计算新的ideal_data
ideal _ dat a ′ = average _ dat a 2 ′ · R 3 / R 2 + average _ da ta 3 ′ R 3 / R 2 + 1
if(average_data′2<ideal_data′){
while(average_data′2<ideal_data′){
          R′2=2·R′2
average _ data 2 tmp 1 = average _ data 2 ′
average _ data 3 tmp 1 = average _ data 3 ′
        if(R′2≤R3){
average _ data 2 ′ = average _ data 2 ′ + R 2 ′ R 3 · average _ data 3 ′
average _ data 3 ′ = R 3 - R 2 ′ R 3 · average _ data 3 ′
          }
       }
}
else if(average_data′2>ideal_data′){
              while(average_data′2>ideal_data′){
R 2 ′ = 1 2 · R 2 ′
average _ data 2 tmp 1 = average _ data 2 ′
average _ data 3 tmp 1 = average _ data 3 ′
average _ data 3 ′ = average _ data 3 + R 3 R 2 · ( 1 - R 2 ′ R 2 ) · average _ data 3 ′
average _ data 2 ′ = 1 2 · average _ data 2 ′
}
          }
        else{
R′2=R2
average_data′2=average_data2
average_data′3=average_data3
         }
if(favor_hibw=True and R′2>R2){
R 2 ′ = R 2 ′ 2
average _ data 2 ′ = average _ data 2 tmp 1
average _ data 3 ′ = average _ data 3 tmp 1
         }
       else if(favor_hibw=False and R′2<R2){
R′2=2·R′2
average _ data 2 ′ = average _ data 2 tmp 1
average _ data 3 ′ = average _ data 3 tmp 1
         }
图6A和6B是说明根据本发明至少一个实施例的方法实例的流程图。方法600包含多个阶段617、618、619和620。阶段617包含多个步骤601、602、603。阶段617开始于步骤601,在该步骤中,例如通过SCRC维护监控日程表和监控时间信息的列表,所述监控时间信息例如监控开始时间、监控结束时间和/或监控周期。在步骤602中,基于列表,例如通过SCRC发布在特定周期监控特定日程表的命令。在步骤603,例如在CIC接收该命令。
阶段618包含多个步骤604和608。在步骤604,例如通过CIC来监控日程表。步骤604可以包含多个步骤605、606和607。在步骤605中,收集关于日程表的信息。在步骤606中,处理关于日程表的信息。在步骤607中,存储步骤606中的处理结果。在步骤608中,例如通过CIC产生中断信号。
阶段619包含多个步骤609、610、611和612。在步骤609中,例如通过SCRC接收该中断信号。在步骤610中,例如通过SCRC检索步骤606存储的日程表信息。在步骤611中,确定子日程表的最佳时间段长度。由于理想的时间段长度取决于诸如关于将来日程表运行信息的不可用的信息和/或不能获得的信息,因此在步骤611中确定的最佳时间段长度仅仅是近似值或者最佳的实际上可确定的时间段长度。在步骤612中,例如通过SCRC将子日程表的最佳时间段长度发送到CIC。
阶段620包含多个步骤613、614、615和616。在步骤613中,例如通过CIC接收子日程表的最佳时间段长度。在步骤614中,例如通过CIC将调整的时间段长度存储在指定的寄存器中。在步骤615中,确定关于调整的时间段长度所属的日程表是否为空。如果日程表不空,该处理保持在步骤615直到日程表变为空或者返回到在该处理中的较早步骤,例如步骤601、步骤604、步骤610或者步骤613,这可以允许确定更新的或者另外的调整的时间段长度。在确定调整的时间段长度所属的日程表为空后,处理过程继续步骤616,在该步骤调整的时间段长度用于日程表的操作。自步骤616起,可以在任何期望时间重复该过程,其可以经常或偶尔发生。
图7是说明用于实现根据本发明至少一个实施例的设备的处理器实例的框图。这样的处理器通常可以用来实现这样的设备,或者可以用它来实现CIC、SCRC、CIC和SCRC的功能或者这些功能的子集或扩展集。处理器700包括处理模块702和存储器704。处理模块702可以包括单个处理实体或者多个处理实体。这样的处理实体可以是微处理器、微控制器、数字信号处理器、状态机、逻辑电路、或者基于操作或程序指令处理信息的任何设备。
存储器704可以是单个存储设备或者多个存储设备。这样的存储设备可以是只读存储设备、随机存取存储设备、软盘、硬盘驱动存储器,或者存储数字信息的任何设备。注意当处理模块702具有一个或多个由状态机或者逻辑电路执行的功能时,包含相应操作指令的存储器嵌入在状态机或者逻辑电路之中。
存储器704存储编程或者操作指令,所述指令允许处理模块702执行至少一部分在图2、6A和6B中说明的以及这里所描述的方法。因此,当通过处理模块702执行存储在存储器704中的操作指令时,使处理模块702执行与监控和改进排队调度器性能相关的功能。在处理器700存储关于一个或多个日程表的信息数据库的情况下,这样的数据库可以存储在存储器704中。
根据本发明的至少一个实施例,一种方法包含收集关于WFQ日程表监控参数的数据,其中WFQ日程表包含具有用于调度通信的时间段长度的子日程表;根据所述数据确定对于该时间段长度的调整;并且根据该调整更新时间段长度。
可选地,该方法可以在这种情况下执行:其中更新时间段长度还包含根据重复确定的对时间段长度的调整来重复更新时间段长度。可选地:该方法可以在这种情况下执行,其中在严重的业务拥塞期间执行重复更新时间段长度。
可选地,该方法进一步包含确定监控参数,以使得该监控参数包含日程表标识符和监控的时间。可选地,该方法可以在这种情况下执行:其中确定监控参数进一步包含确定诸如包含开始时间和结束时间的监控时间的监控参数。可选地,该方法可以在这种情况下执行:其中当经过时间指针至少等于开始时间时,发生数据收集,并且当经过时间指针至少等于结束时间时终止。
可选地,该方法可以在这种情况下执行:其中收集数据包含收集最大的调度周期值,其中确定对时间段长度的调整包含基于最大调度周期值来确定对最低分辨率子日程表的时间段长度的调整。可选地,该方法可以在这种情况下执行:其中收集数据进一步包含收集累积的数据量值和最大数据量值,其中确定对时间段长度的调整包含基于从由累积数据量值和最大数据量值组成的组中选出的值来确定对时间段长度的调整。可选地,该方法可以在这种情况下执行:其中有利于较高带宽队列时确定对时间段长度的调整。可选地,本方法可以在这种情况下执行:其中有利于较低带宽队列时确定对时间段长度的调整。
可选地,本方法可以在这种情况下执行:其中更新时间段长度发生,以使得在WFQ日程表变空后应用更新的时间段长度。
根据本发明的至少一个实施例提供包含日程表信息收集器以及子日程表分辨率计算器的系统,所述日程表信息收集器用于收集关于加权公平排队(WFQ)日程表监控参数的数据,其中WFQ日程表包含具有用于调度通信的时间段长度的子日程表,所述子日程表分辨率计算器用于根据所述数据确定对时间段长度的调整,其中时间段长度根据所述调整进行更新。
可选地,该系统可以在这种情况下实现:其中子日程表分辨率计算器重复确定对时间段长度的调整,其中根据对时间段长度的重复确定的调整来重复更新时间段长度。可选地,系统可以在这种情况下实现:其中子日程表分辨率计算器在严重的业务拥塞期间重复确定对时间段长度的调整。
可选地,该系统可以在这种情况下实现:其中子日程表分辨率计算器发布监控参数,其中监控参数包含日程表标识符和监控时间。
可选地,该系统可以在这种情况下实现:其中监控时间包含开始时间和结束时间。可选地,该系统可以在这种情况下实现:其中当经过时间指针至少等于开始时间时,日程表信息收集器开始收集数据,并且当经过时间指针至少等于结束时间时结束。
可选地,该系统可以在这种情况下实现:其中所述数据包含最大调度周期值,其中对时间段长度的调整包含基于最大调度周期值对最低分辨率子日程表的时间段长度的调整。可选地,该系统可以在这种情况下实现:其中所述数据进一步包含累积数据量值和最大数据量值,其中对时间段长度的调整包含基于从由累积数据量值和最大数据量值组成的组中选出的值来确定对时间段长度的调整。可选地,该系统可以在这种情况下实现:其中时间段长度调整的发生有利于较高带宽队列。可选地,该系统可以在这种情况下实现:其中对时间段长度调整的发生有利于较低带宽队列。
可选地,该系统可以在这种情况下实现,其中时间段长度得到了更新,以使得在WFQ日程表变为空后应用该更新的时间段长度。
因此,描述了用于监控和改进排队调度器性能的方法和设备。应该理解,在本发明的各个方面上的其它变化和修改对本领域内的技术人员来说是显而易见的,并且本发明并不限于描述的特定实施例。因此所有落入这里公开和要求的基本原理的精神和范围之内的任何及所有修改、变化等,都应当认为属于本发明所涵盖的范围内。

Claims (22)

1.一种方法,包含下列步骤:
收集关于加权公平排队日程表监控参数的数据,其中所述加权公平排队日程表包含具有用于调度通信的时间段长度的子日程表;
根据所述数据确定对时间段长度的调整;并且根据所述调整更新所述时间段长度。
2.根据权利要求1的方法,其中更新时间段长度还包含:根据对所述时间段长度重复确定的调整重复更新所述时间段长度。
3.根据权利要求2的方法,其中在严重的业务拥塞期间执行对所述时间段长度的重复更新。
4.根据权利要求1的方法,进一步包含:确定所述监控参数,以使得所述监控参数包含日程表标识符和监控时间。
5.根据权利要求4的方法,其中确定监控参数还包含确定所述监控参数,以使得所述监控时间包含开始时间和结束时间。
6.根据权利要求5的方法,其中当经过时间指针至少等于所述开始时间时,所述收集数据的步骤发生,并且当经过时间指针至少等于所述结束时间时该步骤结束。
7.根据权利要求1的方法,其中收集数据包含收集最大调度周期值,其中确定对所述时间段长度的调整包含基于所述最大调度周期值确定对最低分辨率子日程表的时间段长度的调整。
8.根据权利要求7的方法,其中收集数据进一步包含收集累积数据量值和最大数据量值,其中确定对所述时间段长度的调整包含基于从由所述累积数据量值和所述最大数据量值组成的组中选出的值来确定对所述时间段长度的调整。
9.根据权利要求8的方法,其中确定对所述时间段长度的调整发生在有利于较高带宽队列的情况下。
10.根据权利要求8的方法,其中确定对所述时间段长度的调整发生在有利于较低带宽队列的情况下。
11.根据权利要求1的方法,其中更新所述时间段长度,以使得在加权公平排队日程表变为空后应用所述更新的时间段长度。
12.一种系统,包含下列器件:
日程表信息收集器,用于关于收集加权公平排队日程表的监控参数的数据,其中所述加权公平排队日程表包含具有用于调度通信的时间段长度的子日程表;以及
可操作地耦合到日程表信息收集器的子日程表分辨率计算器,用于根据所述数据确定对时间段长度的调整;其中根据所述调整更新所述时间段长度。
13.根据权利要求12的系统,其中所述子日程表分辨率计算器重复确定对所述时间段长度的调整,其中根据对所述时间段长度的重复确定的调整来重复更新所述时间段长度。
14.根据权利要求13的系统,其中所述子日程表分辨率计算器在严重的业务拥塞期间重复确定对所述时间段长度的调整。
15.根据权利要求12的系统,其中所述子日程表分辨率计算器发布监控参数,其中所述监控参数包含日程表标识符和监控时间。
16.根据权利要求15的系统,其中所述监控时间包含开始时间和结束时间。
17.根据权利要求16的系统,其中当经过时间指针至少等于所述开始时间时,所述日程表信息收集器开始收集数据并且当经过时间指针至少等于所述结束时间时结束。
18.根据权利要求12的系统,其中所述数据包含最大调度周期值,其中对所述时间段长度的调整包含基于所述最大调度周期值对最低分辨率子日程表的时间段长度的调整。
19.根据权利要求18的系统,其中所述数据进一步包含累积数据量值和最大数据量值,其中对所述时间段长度的调整包含基于从由所述累积数据量值和所述最大数据量值组成的组中选出的值来确定对所述时间段长度的调整。
20.根据权利要求19的系统,其中对所述时间段长度的调整发生在有利于较高带宽队列的情况下。
21.根据权利要求19的系统,其中对所述时间段长度的调整发生在有利于较低带宽队列的情况下。
22.根据权利要求12的系统,其中更新所述时间段长度,以便于在所述加权公平排队日程表变为空后应用所述更新的时间段长度。
CNA2006100711530A 2005-02-18 2006-02-17 用于监控和改进排队调度器性能的方法和设备 Pending CN1855886A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/061,300 US20060187934A1 (en) 2005-02-18 2005-02-18 Method and apparatus for monitoring and improving performance of a queuing scheduler
US11/061,300 2005-02-18

Publications (1)

Publication Number Publication Date
CN1855886A true CN1855886A (zh) 2006-11-01

Family

ID=36090918

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006100711530A Pending CN1855886A (zh) 2005-02-18 2006-02-17 用于监控和改进排队调度器性能的方法和设备

Country Status (3)

Country Link
US (1) US20060187934A1 (zh)
EP (1) EP1694012A1 (zh)
CN (1) CN1855886A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831009A (zh) * 2012-08-24 2012-12-19 电子科技大学 相控阵雷达任务调度方法
CN107431667A (zh) * 2015-03-20 2017-12-01 阿尔卡特朗讯公司 在网络设备中调度数据包

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7362766B2 (en) * 2005-06-24 2008-04-22 Hewlett-Packard Development Company, L.P. System and method for dynamically controlling weights assigned to consumers competing for a shared resource

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592620A (en) * 1993-08-12 1997-01-07 International Business Machines Corporation System and method for controlling, monitoring and retrieving accounting data
GB9520807D0 (en) * 1995-10-11 1995-12-13 Newbridge Networks Corp Fair queue servicing using dynamic weights
US6108347A (en) * 1997-02-26 2000-08-22 Paradyne Corporation Non-polled dynamic slot time allocation protocol
US6934250B1 (en) * 1999-10-14 2005-08-23 Nokia, Inc. Method and apparatus for an output packet organizer
US6952424B1 (en) * 2000-04-13 2005-10-04 International Business Machines Corporation Method and system for network processor scheduling outputs using queueing
JP3878603B2 (ja) * 2001-12-28 2007-02-07 ノキア コーポレイション パケットスケジューリング方法及び装置
EP1324553A3 (en) * 2001-12-31 2006-03-22 Alcatel Canada Inc. Method and apparatus for scheduling and servicing events using a calendar structure
US7352761B2 (en) * 2002-06-04 2008-04-01 Lucent Technologies Inc. Distributing unused allocated bandwidth using a borrow vector
US7257083B2 (en) * 2003-06-25 2007-08-14 Motorola, Inc. Method and apparatus for policy-based dynamic preemptive scheduling of data transmissions

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831009A (zh) * 2012-08-24 2012-12-19 电子科技大学 相控阵雷达任务调度方法
CN102831009B (zh) * 2012-08-24 2014-12-03 电子科技大学 相控阵雷达任务调度方法
CN107431667A (zh) * 2015-03-20 2017-12-01 阿尔卡特朗讯公司 在网络设备中调度数据包
CN107431667B (zh) * 2015-03-20 2021-02-02 起源资产集团有限责任公司 一种用于发送数据包的网络设备、方法及存储介质

Also Published As

Publication number Publication date
US20060187934A1 (en) 2006-08-24
EP1694012A1 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
CN1258900C (zh) 路由设备
CN1467965A (zh) 分组处理装置
CN1551580A (zh) 用于隐式区分网络中的服务质量的方法和设备
CN1197305C (zh) 联网系统
CN1226892C (zh) 基站、控制装置、通信系统和通信方法
CN1713617A (zh) 通信统计收集装置
CN1906909A (zh) 数据接收装置
CN1756190A (zh) 分布式性能数据采集方法
CN1226850C (zh) 网络处理器利用断开/重连流队列调度输出的方法和系统
CN1778068A (zh) 通信/数据网络中的数据流动的辅助确定
CN1878131A (zh) 进行流量控制的方法和系统
CN1761243A (zh) 传输设备和方法、记录介质、程序和控制设备
CN101075911A (zh) 统计信息收集系统及统计信息收集装置
CN1910870A (zh) 负载分散方法、节点和控制程序
CN1618243A (zh) 在无线数据通信系统内测试话务和辅助信道的方法和装置
CN1535518A (zh) 用于确保无线网络中的介质接入的方法
CN1517869A (zh) 处理器、运算处理方法和优先度决定方法
CN1689284A (zh) 网络交换装置和网络交换方法
CN1797461A (zh) 一种广告业务信息发布系统及其发布方法
CN1254058C (zh) 节点装置和分组传输控制方法
CN1432243A (zh) 数据包丢弃
CN1662074A (zh) 数据包发送控制装置及数据包发送控制方法
CN1533102A (zh) 数据分组通信设备
CN1674560A (zh) 基站、通信装置和通信系统
CN1265597C (zh) 本地代理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20061101