加权公平队列调度算法

合集下载

一种新的加权公平队列调度算法

一种新的加权公平队列调度算法

a drd c ed l u s n s. i lt nrs l e n t t tev l i n rcia it f P Q n u e h ea b rt e s Smua o ut d mo s a ai t a dp a t bl yo F e t y i i e s reh dy c i S
中图分类 T 31 号: P9
种 新 的加权 公 平 队列调 度 算 法
尹德斌 ,谢剑英
( 海 交通 大 学 自动化 系 , 上海 2 0 4 ) 上 0 20

要 :传统公平队列调度算法( Q、WRR等) WF 普遍 存在基于数据包 的权重参数计算问题 ,由此产 生的高复杂度使其难 以获得广泛应用。
T e p p r r p ssa n w w ihe ar u u ig ag r h S F , h c s ssr i rb bly t c e u ep c es n a d m u e h a e o o e e eg tdf i q e en loi m( P Q) w i u e e vc po a it sh d l a k t a d arn o n mb r o p t h e i o t
1 概述
队列调度是当前互联网技术领域 的一个研 究热点 。 中, 其 加权公平队列调度算法 由于能够根据 各业 务流 的权重进 行区 分 服 务而 受 到 广大 研 究 者 的 广泛 关 注 ” 。 中最 著 名 的 是 加 J其
权 公 平 WF Q…和 加 权 轮询 W R 1两 类 算法 。WF 及 其 改进 R6 1 Q 算 法 。 基 于 通 用处 理 机 共 享 模型 ,使 用 虚 时 间 (i ul 都 J vr a t t e进 行 数 据 包 转 发 。 Q 算法 在 业 务 流 受漏 斗 约 束 的 情 况 i ) m WF 下 可 以提 供 精 确 的 带 宽保 证 和 最 大 时 延 上 限 ,并 且 数 据 包 的 转 发 不 受其 他 业 务 流 特 性 影 响 。但 是 它 的 计 算 复杂 度 太 高 。

WFQ算法

WFQ算法

WFQ算法1 概述分组网络允许用户分享诸如缓冲Buffer 和链路带宽(link bandwidth )等等这样的资源。

当一组用户(flows or connects )复用在相同链路时,就需要一个调度策略,决定如何为分组提供服务。

换句话说,当网络资源被完全使用时,就需要一个完善的调度算法来区分不同用户、不同业务流的优先等级以满足不同的QOS 需要。

例如,实时业务一般对延时比较敏感,而数据业务则对数据丢失比较敏感。

WFQ 算法正是为了满足上面需要而出现的。

•加权公平队列(WFQ :Weighted Fair Queuing )——该算法支持高优先级流量的保证带宽,但低优先级流量可以获得公平的带宽共享权力。

根据数据包标记、源地址和目标地址字段、端口号以及ToS 字段的信息等,制定流量优先级。

如果高优先级队列不在使用中,低优先级流量便可以使用其队列。

该算法可以预防高带宽流量获取不公平的资源共享。

2 WFQ 算法原理的介绍 2.1 GPS 算法原理提到WFQ 算法,首先需要指出的是它本身是对GPS 调度算法的模拟实现。

Generalized processor sharing(GPS)是一种理想的调度策略,它可以提供准确而公平的带宽分配,根据所有等待队列(sessions )所需的最小带宽(速率)按比例分配出口容量。

GPS 调度算法是基于理想的流模型实现的,即假设GPS 调度器可以同时为所有的等待队列提供服务,输出链路容量可以分成无限小的单元分配给各队列。

然而在实际系统中,调度器每一时刻只能为一个队列提供服务,而且分组也不能分解成更小的单元。

WFQ 算法正是作为一种可实现的PFQ (packet fair queuing )算法来模拟实现GPS 调度器的工作。

我们首先介绍一下理想的GPS 算法。

假设有N 个通路(session ),用1,2,…,N 表示。

他们分享GPS 服务器的输出链路。

我们用r i 表示分配给第i 个通路的最小带宽(速率),i ∈{1,2,…,N}。

网络中的拥塞控制与流量调度算法

网络中的拥塞控制与流量调度算法

网络中的拥塞控制与流量调度算法随着互联网的快速发展和广泛应用,网络拥塞成为了一个不可忽视的问题。

在高负载情况下,网络拥塞可能会导致网络性能下降、延迟增加甚至连接中断。

为了解决这个问题,网络中的拥塞控制和流量调度算法应运而生。

本文将探讨网络中的拥塞控制和流量调度算法的原理、应用和发展。

一、拥塞控制算法1.1 简介拥塞控制是一种调节网络流量的机制,通过监测网络负载情况并采取相应的措施来避免或减轻拥塞。

主要目标是防止网络发生拥塞,保证网络的稳定性和可靠性。

1.2 原理拥塞控制算法基于TCP协议,通过监测网络中的数据包丢失情况和延迟情况来判断拥塞程度,然后采取相应的措施来调整流量。

1.3 常用算法- AIMD(Additive Increase Multiplicative Decrease)算法AIMD算法通过线性增大拥塞窗口来增加发送速率,而在发生拥塞时将拥塞窗口减半,从而实现拥塞控制。

- 慢启动算法慢启动算法在初始阶段以指数方式增加拥塞窗口,然后逐渐切换到线性增长。

当发生拥塞时,拥塞窗口会减半。

- 基于队列的拥塞控制算法这种算法通过监测网络中的队列长度来判断网络的拥塞程度,然后动态调整发送速率或阻塞部分流量,以实现拥塞控制。

二、流量调度算法2.1 简介流量调度算法用于根据不同的需求和优先级来调度网络中的数据流量,以实现资源分配的公平性和高效性。

2.2 原理流量调度算法根据各个数据流的优先级和服务需求,动态地调整网络中的带宽分配和流量转发策略,以实现流量的均衡分配和高效处理。

2.3 常用算法- 公平队列算法公平队列算法根据每个流的优先级和需求,为每个流分配相应的服务质量,并采取公平的调度策略,以实现公平的带宽分配。

- 加权公平队列算法加权公平队列算法引入了流的权重参数,使得优先级高的流可以获得更多的带宽资源,从而实现不同流的差异化服务。

- 优先级队列算法优先级队列算法根据各个流的优先级将流量分成多个队列,然后按队列的优先级进行调度,以实现流量的有序处理。

DiffeServ机制中队列调度算法的研究

DiffeServ机制中队列调度算法的研究

包 长
2 0 1 0 3 0 3 0
的应 用 , 通过 与其 他 队列 调度 算 法 仿 真结 果 的 比较 并
分析 了该算 法 的性 1 算 法概述 . 加权 公平 队列 调度 算法 ( e he a e ig W i tdF i Qu un ) g r
展做 出 了分析 。
【 键 词 】 加 权 公 平 队 列 ( F ,优 先 级 ,W F B 关 W Q) Q P,适 应 性 , 可 控 性
中图 分 类 号 :TP 9 33 文 献 标 识 码 :A
AB T S RAC T Th s p p r e p u d i d o c e l g a g rt m a e n Di s r d l a d is p ro ma c . W eg t d f i i a e x o n s a k n fs h du i l o ih b s d o f e v mo e n t e f r n e n f ihe ar
a a t bea d c n r l b e d p a l n o to l l.Th lo i m ’ a pia in a dd v lp n sas x lie nt i p p r a eag rt h S p l to n e eo me ti lo e p an d i hs a e . c
型 提 供 相 应 的优 先 级 来 提 供 相 对 的 QOS保 障 在 DiSr f ev路 由器 的 控制 机 制 中 , 由器 输 出端 口的 队 f 路 列调 度策 略在 整个 机制 中有着 关 键性 的作用 。 本 文对具 有 自适 应 特性 的 wF 算 法进行 了分 析 Q
很 好 地 解 决 了 It ev扩展 性 问题 , 时通 过 将 用 户 nS r 同

一种基于优先级的加权公平队列调度算法

一种基于优先级的加权公平队列调度算法

个 问题 .
许多研究在 WF 的基础上进行改进.自同步 Q
公 平 排 队 (efClce arQuun ,S F 是 Sl okd F i e ig C Q)
WF Q一个简单的变体 [ S F 4 C Q取数据包获取服务 】 . 的时间作为虚拟起始 时间. 这极 大地 减少了追踪 虚拟时间所需 的计算量. 但是与 WF Q相 比, C Q SF
选择虚拟结束 时间最 小的数据包进 行发送 . Q WV 是一类 公平调度算法 , 所有的业务根据 其平 均速
率 分 享 带 宽 ,在 无 线 传 感 器 网络 资 源受 限 的 情 况
实时业务的端到到时延问题 . 笔者在此提 出一种基于优先级 的加权公平 队
列 调 度算 法 PWF 其 能 保 证 将 业 务最 大 时延 控 — Q,
包 的个 数, 来保证每类 多媒体 业务在该 时刻可 分 配的带宽. 最后, 通过在待发送数据包 内部使用基 于优先级 的调度机 制, 来保证 高优先级数据包 的
时延.
的端到端 时延 增加了一个部分 , / . 而开 始时间公平排队(t ti eF i Q ee g S Q 是 S rt a uui , F ) a .m r n
为了满足 日益增长 的实时业务的 Q S( uly o Q at i
o ev e fSri ) c 需求, 无线传感器网络( rl sSno Wi e esr es Ne ok WS ) 采取的调度机制需要支持多种的 t r, N 所 w 业务特性…, 同时兼顾传感器 网络带宽资源有限的 特点. 因此, 队列调度机制成为 目 前无线传感器网
能上 比 wF Q有 明显 的改善 ,而且 能够将 实 时业务 的 最 大时延 控制 在 允许 范围之 内.

QOS各种队列详解(FIFO,FQ,CBWFQ,PQ)

QOS各种队列详解(FIFO,FQ,CBWFQ,PQ)

QOS各种队列详解(FIFO,FQ,CBWFQ,PQ) 对于拥塞管理,一般采用队列技术,使用一个队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。

每种队列算法都是用以解决特定的网络流量问题,并对带宽资源的分配、延迟、抖动等有着十分重要的影响。

这里介绍几种常用的队列调度机制。

1. FIFO(先入先出队列,First In First Out Queuing)图9 先入先出队列示意图如上图所示,FIFO按照时间到达的先后决定分组的转发次序。

用户的业务流在某个设备能够获得的资源取决于分组的到达时机及当时的负载情况。

Best-Effort报文转发方式采用的就是FIFO的排队策略。

如果设备的每个端口只有一个基于FIFO的输入或输出队列,那么恶性的应用可能会占用所有的网络资源,严重影响关键业务数据的传送。

每个队列内部报文的发送(次序)关系缺省是FIFO。

2. PQ(优先队列,Priority Queuing)图10 优先队列示意图PQ队列是针对关键业务应用设计的。

关键业务有一个重要的特点,即在拥塞发生时要求优先获得服务以减小响应的延迟。

PQ可以根据网络协议(比如IP,IPX)、数据流入接口、报文长短、源地址/目的地址等灵活地指定优先次序。

优先队列将报文分成4类,分别为高优先队列(top)、中优先队列(middle)、正常优先队列(normal)和低优先队列(bottom),它们的优先级依次降低。

缺省情况下,数据流进入normal队列。

在队列调度时,PQ严格按照优先级从高到低的次序,优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。

这样,将关键业务的分组放入较高优先级的队列,将非关键业务的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。

PQ的缺点是如果较高优先级队列中长时间有分组存在,那么低优先级队列中的报文将一直得不到服务。

一种基于加权公平队列调度的改进型算法

一种基于加权公平队列调度的改进型算法
第2 3卷 第 6期 2 0 1 3年 6月
计 算 机 技 术 与 发 展
C OMP UTE R T ECHNOL OGY AND DEVEL OPMENT
V0 1 . 2 3 No . 6
J u n e 2 0 1 3

种 基 于 加权 公 平 队列 调 度 的 改进 型 算 法
i e d he t WF Q lg a o r i hm t o n he t f o u n d a i t o n o f G P S . ro P p o s e L — . C B WF Q lg a o i r hm t f o r WF Q a l g o r i t h m c a n n o t e n s u r e he t q u l a i t y o f r e a l -
田 冲, 周 井泉
( 南京 邮 电 大学 电子科 学与 工程 学 院 , 江 苏 南京 2 1 0 0 0 3 )

要: 随着 网络业 务 的不 断增多 , 比如 I P电话 、 视频 会议 、 远程 教学 等应 用 的 不断 出 现 , 需要 I n t e me t 提供 良好 的 Q o S支
ime t er s vi c e . Un d e r he t c o n d i t i o n o f l i mi t e d ba nd wi d h t he t L

C B WF Q lg a o i r t h m d i s i t n g u i s h e s b e t w e e n r e a l - i t me s e vi r c e nd a n o n r e l— a
t i me s e vi r c e , a d j u s t s w e i g h t e d v l a u e t o e n s u r e he t q u a l i y t o f r e l— a t i me s e vi r c e . S i mu l a i t o n s h o ws he t L — CB WF Q a l g o i r hm t n o t o n l y C n a s a t i s f y he t q u li a t y o f ea r l- i t me s e vi r c e , b u t ls a o C n a i mp r o v e d e l a y nd a j i t t e r p r o b l e m i n r e a l — t i me s e vi r c e .

加权轮训队列调度算法

加权轮训队列调度算法

加权轮训队列调度算法加权轮询队列调度算法是一种用于网络设备上多个任务调度的算法。

在传统的轮询调度算法中,所有任务被按照相同的权重进行调度,因此每个任务被分配的时间片是相等的。

但是在实际应用中,不同的任务可能具有不同的优先级和重要性,因此需要使用一种更为灵活的调度算法。

加权轮询队列调度算法将所有的任务分为几个队列,并为每个队列分配一个权重。

在每个调度周期内,调度器会按照队列的权重依次调度任务,每个任务被轮询的时间片长度与其所处的队列的权重成正比。

例如,系统中有三个队列,其权重分别为3、2、1。

在每个调度周期内,调度器会首先调度队列1中的任务,每个任务被分配的时间片为10ms(假设一个调度周期为30ms)。

接下来调度队列2中的任务,每个任务被分配的时间片长度为20ms。

最后调度队列3中的任务,每个任务被分配的时间片长度为30ms。

这种调度算法的优点在于可以根据实际需要灵活地分配任务的时间片,更精细地控制任务的优先级。

同时,由于任务被分配的时间片长度与队列的权重成正比,因此可以根据任务的重要性和优先级来确定其所处的队列和权重,从而更好地实现资源的优化利用。

然而,加权轮询队列调度算法也存在一些缺点。

例如,由于任务被划分为多个队列,因此会出现任务被分配到不同队列的情况,对于一些需要连续执行的任务来说,可能会造成执行效率的降低。

此外,由于任务的划分和调度需要消耗一定的资源,因此对于一些资源紧张的系统来说,可能不太适合采用这种调度算法。

综上所述,加权轮询队列调度算法是一种在特定场景下能够更为精细地控制任务优先级和时间片分配的调度算法,但它也存在一些局限性和缺陷,需要根据实际应用情况进行综合考虑。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2008年2月February 2008—28—计 算 机 工 程Computer Engineering 第34卷 第4期Vol.34 No.4 ·博士论文·文章编号:1000—3428(2008)04—0028—03文献标识码:A中图分类号:TP391一种新的加权公平队列调度算法尹德斌,谢剑英(上海交通大学自动化系,上海 200240)摘 要:传统公平队列调度算法(WFQ 、WRR 等)普遍存在基于数据包的权重参数计算问题,由此产生的高复杂度使其难以获得广泛应用。

该文提出一种新的加权公平队列调度算法,使用服务概率和随机数实现加权公平调度,显著降低了算法的复杂度。

同时使用自适应服务概率计算解决了数据包变长度带来的不公平性。

通过队列管理技术有效地提高了交换机的缓冲区利用率,并减小了排队延迟抖动。

仿真结果证明了算法的有效性和实用性。

关键词: 队列调度;加权公平排队;自适应队列管理;分组交换网络New Weighted Fair Queue Scheduling AlgorithmYIN De-bin, XIE Jian-ying(Department of Automation, Shanghai Jiaotong University, Shanghai 200240)【Abstract 】Traditional weighted fair queue algorithms have the main drawback: the calculation of the weight parameters according to each packet.The paper proposes a new weighted fair queueing algorithm(SPFQ), which uses service probability to schedule packets and a random number to decide which packet to be served next. In addition, a novel adaptive service probability parameter calculation method is used to solve the unfair problem induced by the variable packet length and an adaptive queue management technology to improve the utilization of the server's queue buffer and reduce the delay burstiness. Simulation results demonstrate the validity and practicability of SPFQ.【Key words 】queue scheduling; weighted fair queueing; adaptive queue management; packet switching network1 概述队列调度是当前互联网技术领域的一个研究热点。

其中,加权公平队列调度算法由于能够根据各业务流的权重进行区分服务而受到广大研究者的广泛关注[1-9]。

其中最著名的是加权公平WFQ [1]和加权轮询WRR [6]两类算法。

WFQ 及其改进算法[3,5,7]都基于通用处理机共享模型[2],使用虚时间(virtual time)进行数据包转发。

WFQ 算法在业务流受漏斗约束的情况下可以提供精确的带宽保证和最大时延上限,并且数据包的转发不受其他业务流特性影响。

但是它的计算复杂度太高。

WRR [2,6]是另一类复杂度相对较低的常用加权队列调度算法;各业务流在一次轮询中所允许发送的数据包个数由队列权重决定。

DRR [4]引入了差额计数器(dificit conter),记录由数据包长度不同引起的服务量差。

轮询类算法复杂度较低,但无法提供确定的带宽保证和时延上限。

国内的研究者近年来也提出了许多队列调度算法。

文 献[8]针对SS 和BF 两种业务流,提出了一种对数自适应调度算法,但该算法对类内各业务流之间如何调度并没有说明,且不能提供公平服务和隔离特性。

文献[9]提出了一种用于区分服务网络的虚时钟核心无状态队列调度算法,各数据包自身携带虚时钟状态信息,中心服务器根据虚时钟进行转发,但需要根据虚时钟将入队列数据包插入到转发队列中,这无疑是一项沉重的计算负担。

另外,该算法并未考虑虚时钟清零问题。

本文提出了一种新的加权队列调度算法SPFQ 。

由于采用了指数移动平均算法和阀值触发的平均数据包长度更新,使得服务概率计算频度大大降低,从而显著降低了算法的复杂度。

2 SPFQ 队列调度算法2.1 SPFQ 的基本原理SPFQ 算法依据各业务流的平均数据包长度将它们的权重转换成归一化服务概率,通过该参数实现加权服务。

为了降低算法的复杂度,系统采用事件触发方式计算队列的平均长度。

在算法实现中,使用单独模块计算服务概率,以减轻调度器的负荷。

2.2 SPFQ 的结构数据包分类器图1 SPFQ 算法结构基金项目:国家自然科学基金资助项目(60572157);国家“863”计划基金资助项目(2003AA123310)作者简介:尹德斌(1978-),男,博士,主研方向:包交换网络的队列调度和管理;谢剑英,教授、博士生导师收稿日期:2007-03-10 E-mail :yin_db@SPFQ 算法结构主要包括:(1)数据包分类器;(2)队列管理器;(3)SPFQ 调度器;(4)数据包长度观察器;(5)自适应服务概率计算器;(6)随机数发生器。

随机数发生器生成一个在区间[]0,1内均匀分布的随机数。

为了消除数据包长度变化时的服务量差异问题(参见4.2节),在调度器输出端设计了数据包长度反馈环节,下面分别介绍其余4个模块。

(1)RN 2.3 队列管理器SPFQ 的队列管理器为各业务流维护一个独立的缓冲区;根据各业务流的时延和速率要求,动态调整其缓冲区长度,最优化缓冲区利用。

对于具有带宽、时延要求的数据流,定义队列缓冲区长度满足下式:max i i bl bl ≤ (1) max min max ()max{, }i j i i kk AQ N w BLbl bw w τ∈×=×∑ (2)其中,是要求的最小带宽;是最大时延;min bw max i τBL 是缓冲区总长度;()AQ N 为当前活动队列集。

对于没有明确QoS 要求的数据流,基于“尽力而为”服务要求,并考虑对其他业务流的保护和网络拥塞控制的要求,定义队列缓冲区长度满足下式:max j j bl bl ≤ (3) max ()jjkk AQ N w bl BL w ∈=∑× (4)其中,j w 是队列权重。

服务器使用统一缓冲区管理策略,即各业务流共享同一空闲缓冲区。

当有数据包到达时,如果缓冲区有足够的空闲空间,验证式(1)或式(3),满足则分配缓冲区,数据包入队列;否则丢包。

2.4 数据包长度观测器长度观测器监测新业务流,根据长度反馈和设定阀值更新各队列的平均数据包长度;自适应服务概率计算器根据数据包平均长度和权重参数动态调整各业务流的服务概率,以消除数据包变长度引起的不公平性。

观测器从数据包长度反馈环节接收当前被转发数据包的长度,用于更新相应的平均数据包长度。

为了降低计算复杂度,SPFQ 使用指数移动平均(Exponential Moving Average, EWMA)来估计数据包平均长度curr 1jˆˆ(1)j l l µµ+=×+−×jl (5)其中,ˆj l 是当前数据包平均长度估计值;1ˆj l +是更新后的估计值;是当前被转发数据包的长度;curr j l µ是权重因子,本文取7/8。

单位时间内有大量数据包离开服务器,如果对平均长度进行实时更新则计算量太大。

因此,SPFQ 使用下列平均长度更新算式1ˆˆ, ˆ, j j j j j j j l l l l l l l l l νν+⎧−×⎪=⎨−<×⎪⎩≥j j(6) 其中,v 是阈值因子,本文取0.1,它决定了更新精度。

2.5 自适应服务概率计算器考虑如图1所示的单服务器系统,假设有N 个队列通过该节点转发数据包,其中第个队列的服务权重为,则如果各队列数据包长度相同,则每个队列的服务概率定义为i (1)i w i N ≤≤()()() 0 i jj AQ N i i AQ N i AQ N w w p ∈∉∈⎧⎪=⎨⎪⎩∑ (7) 对于变长度数据包网络,式(7)修正为()()() 0 i ij i j AQ N j i AQ N i AQ N w l w p l ∈∉∈⎧⎪⎪⎪=⎨⎪⎪⎪⎩∑ (8) 其中,i l 是数据包长度观测器给出的平均长度。

当i l 发生变化时,长度观测器通知服务概率计算器重新计算各业务流的服务概率。

服务概率计算器按下式维护一个服务概率表供调度器使用(1) 1 2 1 i i i i p i P p i P i N −=⎧⎪N +<=⎨⎪=⎩≤ (9)这样为闭区间内的递增序列。

(1)i P i N ≤≤1[,1]p 2.6 SPFQ 队列调度器SPFQ 算法是非抢占的,它依据各队列的服务概率进行数据包转发。

同一队列中的数据包按先来先服务(FCFS)原则转发。

调度器基本原理是:在一次转发中,调度器从随机数发生器中获取随机数,查询服务概率表,找到满足下式的(1)RN i P (1)(1)i P RN −i P <≤ (10) 则队列i 的头数据包被转发。

当所有服务队列都为空时服务器进入空闲状态(服务保持)。

3 SPFQ 算法复杂度分析分析图1中SPFQ 算法的结构,长度观测器和自适应服务概率计算器以及随机数发生器都可用单独模块实现;它们只和调度器交换数据,不增加调度器的计算负荷。

与其他调度算法相比,SPFQ 增加了一个队列管理器。

对于一个实际运行的路由器,这是必不可少的。

这样算法的主要改进集中在SPFQ 队列调度器。

队列调度器的任务是将随机数与按照式(9)计算得到的服务概率表中的数据相比较,找到符合式(10)式的队列,然后转发它的头数据包。

这样,调度器的实现便是一个线性表查询问题。

由于服务概率表单调递增,因此可以使用二分查找法。

唯一不同的是查找目标不是和随机数相等,而是符合式(10)。

相关文档
最新文档