2024年4月11日发(作者:)
多队列VC调度算法研究
吴舜贤 刘衍珩 田明
吉林大学计算机科学与技术学院,吉林 长春 130012
E-mail:
wushxian@
摘 要
本文首先分析了VC和GPS/PGPS分组调度算法的优点和缺点,在此基础上提出
了一种具有GPS调度算法特性的多队列VC调度算法MQVC。完整阐述了MQVC的设计目
标、改进措施,并给出了MQVC算法模型和算法描述,通过定理和引理证明了该模型比单
队列VC 和PGPS调度算法模型在实现复杂度、系统调度性能和包的丢失等方面的明显改
善。网络仿真结果显示该算法具有良好的服务质量性能。
关键词
调度算法,虚拟时钟,MQVC,GPS,服务质量。
中图分类号:
TP393.02
文献标识码:
A
1引言
在高速路由器技术研究中,核心部分之一是路由器中分组调度算法研究[1]。通过对调
度算法的综合比较[2]发现集成服务网络分组调度算法中,VC (Virtual Clock) [3,4]和GPS
(Generalized Processor Sharing)/PGPS(Packet-by-packet Generalized Processor Sharing)[5]
是两种比较典型的调度模型。
VC算法是一种基于TDM的统计时分的服务模型。文献[6]认为VC调度算法是 “不公
平”的,但文献[3,4,7,8]从理论和仿真结果表明它的有效性、可行性和优越性,认为
VC算法是一种能够有效满足一定的服务速率保证、时延保证和流隔离监视的调度算法。相
对于本文提出的算法模型,称原来的VC 算法为单队列VC调度算法。GPS调度算法是一种
理想的绝对的基于流的公平队列算法,在现实条件下是不可实现的,对GPS的模拟演化出
一系列调度算法,如WFQ[1]、PGPS[5]、WF
2
Q[9]、WF
2
Q+[10]、SFQ[11]等,其最大差异
在于虚拟时间定义和调度条件选定。PGPS是GPS的一种较好的逼近模拟。当前对VC算
法主要的改进研究有前跳虚拟时钟[12]、核心无状态虚拟时钟[13]及基于虚拟时钟的接纳
控制技术[14]等。
本文针对VC及PGPS存在的缺点和不足,从改进算法效率和资源使用率角度对VC进
行了改进,提出一种称为多队列的VC算法MQVC(Multi-Queued Virtual Clock)。
2 VC 和GPS/PGPS调度算法分析
VC 算法和GPS/PGPS算法在服务保证、系统效率等方面有许多相似,但又存在差异。
VC算法具有TDM的优点和统计时分的灵活性,它以为每个流预留资源的形式在速率保
证、时延保证和流之间的隔离上具有优越性能。但研究发现,VC调度算法也具有诸多不
足:(1)VC算法只有一个分组缓存,缓存所有增序排列的数据分组。当有突发流时,突发
分组会在短时间内占满所有缓存,使得其他流的分组具有较大延迟,甚至丢失;(2)对优
项目基金:吉林省自然科学技术基金(20030522-2)
- 1 -
先级的支持,只有一个全局队列,当p值不适当时,流i的分组会占满整个调度队列,使
其他流出现短期“饥饿”;(3)缓存满而又有新分组到达时,采用尾部丢弃,而被丢失分组
所属流的后继分组到达时,其
auxVC
i
值会在丢失分组的基础上加上一个
V
i
,使得新到
达的分组在队列中延迟增加,进而增加了该分组的丢失概率;(4)缺乏流的接入控制和结
束检测机制。
PGPS是GPS的一种很好的近似方案。PGPS算法按照GPS的公平性定义虚拟时间并
计算标记分组,所有分组以
F
i
增序排列,最小者优先调度。为此,每当有会话到来或会
话结束时,或数据包传输结束而暂无后继分组到达时,都必须重新计算虚拟开始服务时间
和虚拟结束服务时间。在数据流很多、每个流的数据分组数目较大的情况下,这两项数据
计算的系统开销会非常大,系统效率非常低,系统的整体性能很差,出现扩展性问题。
k
kk
3.多队列VC调度算法模型
3.1 设计目标
在本文提出的算法模型中仍然体现VC 算法和PGPS算法的优点,同时改善VC算法
的不足,以达到改善系统性能的目的。改进后算法应具有以下优点或功能:
n 通过资源预留,为多种应用提供不同吞吐量需求保证;同时要求各个数据流按照
各自申请的预留资源量产生数据分组,取得服务。
n 提供流的监视和控制措施,保证数据流正常使用网络资源,防止恶意流非法占用
过多带宽。
n 加强流的隔离,使得某个突发流的分组不会对其他流的正常传输增加延迟,甚至
分组丢失。
n 充分保持VC算法中统计时分的灵活性。
n 引入流接纳控制机制和结束检测机制,保证资源合理分配,维护其他流的正常获
得服务。
n
整体上减少系统开销,提高系统效率。
3.2 算法改进
在上文分析基础上,进行如下改进:
n 将VC算法中单队列扩展成PGPS下的多队列,为此,为每一个获得接入允许权
限的流分配一个数据队列缓存,长度为
L
i
(
L
i
值可以根据不同会话需求及优先权分配不同
值)。
n 算法调度中的虚拟开始时间和虚拟结束时间采用单队列VC算法中的计算方法,
即采用
auxVC
i
值的计算方法,保持了VC算法中计算虚拟时钟值的简捷性。考虑到分组
长度可能不同,在计算
V
i
时以位计包长,即
V
i
k
k
k
L
k
i
=
AR
。
i
n 取消PGPS算法中的分组排队机制,改为:每次调度时,从各会话队列的队首分
- 2 -
组中选取虚拟时钟值最小者进行调度处理。
n
引入流接纳控制机制和结束检测机制。当有新的流建立预留资源申请时,检测系
统是否有足够的资源以允许新的流进入。若允许则分配队列缓存,分配资源;否则,采取
相应的措施加以处理。
改进后的算法调度模型如下:
图1 MQVC算法调度模型
3.3算法描述
综合以上分析和改进,算法描述如下:
At each Packet Scheduling node:
n Upon receiving a request packet for establishing a flow i
If ( AdmissionControl(flow i) )
AllocateResource(flow i)
Else Return the error number and Take some actions for the failure;
n Upon receiving the first packet from flow i
MQVC
i
←t
i
(MQVC
i
←(t
i
−p))
MQd
i
←t
i
(MQd
i
←(t
i
−p))
n Upon receiving each packet k from flow i
kkk−1
0101
1111
1
MQd
i
←max{t
i
,MQd
i
2
MQVC
i
←(MQVC
i
kk
kk−1
}
;
+V
tick
i
)
MQd
i
←(MQd
i
+V
tick
i
)
where
V
tick
i
L
k
=
i
AR
i
k
3 Stamp the packet k with the
MQd
i
value
4 Put the packet k into the queue of flow i
5
Timer
i
←MaxInterval
n Select the packet with minimum
MQd
i
value from the heads of queues to
k
Transmit
- 3 -
n When the buffer of flow i runs out ,drop the packet after arrived. Don’t fresh the
MQd
i
k
,and refresh the
MQVC
i
k
value
n Upon receiving each set of
MaxPackets
(
MaxPackets=AR
i
∗AI
i
) packets
k
from flow i
1 if
(MQVC
i
−t
i
)>T(threshold)
then
Control actions should be taken.
2 If
(MQVC
i
i ) then MQVC i ←t i n Upon (receiving a request packets of disestablishing a flow i) OR (the Timer i is timeout), then Free the buffer of Flow i ; Reclaim the resource of flow i . k k 4.分析 4.1设计目标分析 由上文算法模型及算法描述知,MQVC算法较好的达到了设计目标,具有以下特点: n 支持多种QoS需求 MQVC保持了单队列VC 中对不同类型流不同需求的支 持,通过分配单个流的数据缓存及预留相应资源,对不同流的区别对待达到支持多种性能 需求流的目的。 n 数据流监视和接纳控制 MQVC引入接入控制机制,使得资源的分配和回收以 更合理的方式进行。而由算法知,通过 MaxPackets ,结合 MQVC i 值,可检测出超出申 请资源量的流,并对其采取措施进行控制,加强了流的监视。 n 数据流之间的隔离 MQVC引入多队列机制,每个流拥有自己的缓存队列,当 某个恶意用户发送超过自己预定资源量的分组时,将受到系统的惩罚。随着其 MQd i 逐渐 增大,其得到系统服务的机会也逐渐减少,直到最后系统将几乎停止为其服务。若其仍有 后继数据包到来,则之后充满自己的数据缓冲区,造成自己数据分组的丢失,不会对其它 流造成影响。 k k n 不同优先级的支持 在计算 MQVC i 和 MQd i 时用 kk 表1 排序复杂度与公平度 调度算法 PGPS 排序复杂度 公平度 ≥ N L max 2r t i −p 代替 t i ,使具有较高优 先级的流较优先获得服务(其 具有较小的 MQd i )。同时可 以为其分配较大的数据缓存 k O(m*n) O(log(m*n)) O(logm) 单队列VC MQVC ∞ ∞ L i 。 - 4 - 4.2性能分析 系统开销 PGPS系统中数据分组排序的开销比较大,而在单队列VC中亦有全局排 序过程。如果将MQVC中的数据分组选取也视为一种排序,则: 假定有m(m>1)数据流,每个流有n(n>=1)个分组待处理,则三种系统排序复杂度与 公平度比较如表1所示。 在实际的调度系统中,数据分组的个数要远比数据流的个数多得多,即n远比m大, 这样,实际系统中单队列VC中的排序开销比MQVC中大得多,这在高速网络中是相当可 观的。 MQVC取消分组排序,简化了算法的实现,将系统实现复杂度降为 O(logm) 。只有 当单队列VC中所有流只有一个数据包时其计算量才降到MQVC的计算量值,从而整体上 系统开销大大减少,达到了简化设计、减少开销的目的。 延迟 在文献[7,8]中,通过严格的数学推导证明在单队列VC中存在时延上限,即 满足条件 ∑ R f 的情况下,任意数据分组k离开系统的时间满足约束条件: L(k) i k + L max C 在MQVC算法下,仍然满足上述时延保证约束条件。 定理 1 在MQVC算法下,如果各个数据流的请求服务速率满足条件 任意流的数据分组离开系统的时间满足下面约束: k L k i i + ∑ R f ,则 L max C 其中, L max 是系统中的最大数据分组的长度。 以上结论在单队列VC中成立,已经在文献[7,8]予以证明。定理1说明在MQVC 中也成立。为证明定理1,先证明以下引理。 定义 1 虚拟服务器:一个调度节点被称为虚拟服务器当且仅当它以速率 r f 为流f 提供服务且只为流f提供服务。虚拟服务器是连续工作的,流f中的分组以FCFS的方式获 得服务。 引理 1 虚拟服务器中流f的第i个分组的传输结束时间 F f 满足: i F=t+ 1 f 1 f L 1 f r f L i f r f (1) (2) F f i =max{t i f ,F f i−1 }+ i 证明 : 令 b f 为分组i到达时在队列中等待传输的数据位数,则有: b 1 f =0 - 5 - b i f =max{b i f −1 +L i f −1 −r f (t i f −t i f −1 ),0} 分组i传输结束时间为: F f =t f + ii (3) (4) L i f +b i f r f =t 1 f + L 1 f r f r f 当 i=1 时 F f =t f + 11 L 1 f +b 1 f r f 当 i>1 时 F f =t f + ii L i f +max{b i f −1 +L i f −1 −r f (t i f −t i f −1 ),0} b i f −1 +L i f −1 i−1i L i f =max{+t f ,t f }+ r f r f 对于 i−1 ,有 F i−1 f =t i−1 f + L i f −1 +b i f −1 r f i f i−1 f 故: F=max{t,F i f }+ L i f r f i 由引理1可知,虚拟服务器中数据分组的完成传输时间 F f 与单队列VC 中数据分组 虚拟传输结束时间 auxVC i 具有相同的计算公式,即在两种服务器上数据分组被标记的结 束时间是一样的。 引理 2 单队列VC是多个虚拟服务器的组合。 证明:设单队列VC服务器中有N个流,每个流的服务速率为 r i 且 k ∑ r i 。对于任 意流 i ,如果所有流均以正常速率获得服务,在[ t m ,t n ] ,其完成服务的数据流量为 S i (t m ,t n )=r i (t n −t m ) 则对于所有的流,有: ∑ S(t i i=1 N m ,t n )= ∑ r i (t n −t m ) i=1 N (5) 每个流在其对应的虚拟服务器中获得服务,则[ t m ,t n ]内,其虚拟服务器中流 i 所获得 服务量为 S i (t m ,t n )=r i (t n −t m ) 对于所有流在 [ t m ,t n ]内的服务量之和亦有: NN ∑ S(t i i=1 m ,t n )= ∑ r i (t n −t m ) i=1 (6) 由此知,在[ t m ,t n ]内相同需求速率的流在两种算法中的服务量是相同的。假定有流 i 在两种服务器下同时开始服务且其数据源特性相同,则其任意数据包k在两种算法中的虚 - 6 - 拟结束时间标志 F i 是相同的。均有: k F i =max{t,F i kk i k−1 L k }+ i r i k 由以上可知,如果各个流均以其申请速率 r i 产生数据分组,则在两种服务器中所获得 的服务是相同的。而任意流的任意数据分组的虚拟结束时间 F i 也是一样的,故引理成 立,得证。 引理 3 MQVC是多个虚拟服务器的组合。 证明:设有N个流,每个流的申请服务速率为 r j 且 流j,其分组k在其虚拟服务器中的传输结束时间为: k−1 F j k =max{t k }+ j ,F j ∑ r L k j r j j 。由引理1知,对任意 而在MQVC中,流j的分组k的传输结束时间亦为上式。 由此知,在数据源特性完全相同即任意流j的任意分组k到达两个系统的时间相同的 情况下,该分组在两种系统下的 F j 是完全一样的。而在MQVC系统中,分组以 F j 升序 获得处理,因而在上述情况下,两种系统中的分组处理顺序也是完全相同的,即在 kk ∑ r j 满足时,MQVC是多个虚拟服务器的组合。 证明:由引理2、引理3知,在相同的初始条件下,单队列VC是多个虚拟服务 定理 2 在相同的初始条件下,MQVC、单队列VC与N个流的组合是等价的。 器的组合, MQVC是多个虚拟服务器的组合,那么,N个虚拟服务器分别组合成单队列 VC和MQVC后,组合的单队列VC 、MQVC是相同的,由此知,在相同的初始条件下, 单队列VC、MQVC及多个虚拟服务器组合三种服务器是等效的。得证。 定理1的证明:由定理2可知,在相同的初始条件下,MQVC和单队列VC是 等价的。则在相同的约束 ∑ r i 下成立的数据分组的时延结论 k L k i i + L max C 也是成立的。关于约束结论 参见文献[7,8]。得证。 4.3 仿真分析 本文在Linux 8.0+NS-2 [12] 仿 真平台中对上述改进方案进行了 仿真,试验仿真的网络拓扑结构 如图2所示。两种方案采用不同 的调度服务器:单对列VC(SQVC) 和多队列VC(MQVC)。从源0、1和 - 7 - 图2 模拟试验网络拓扑 2分别经过节点3建立到目标节点4的连接,其他参数设置均相同。共享链路的速率为 100kbps,链路延迟10ms,模拟时间为5.5s。本文分别针对不同发送速率和预留带宽对两种 算法进行对比。 1.在每个流的发送速率不超过链路预留带宽且预留带宽之和不超过链路总带宽的情况 下,两种方案中各流的性能基本相当,没有出现分组丢弃,如图3和图4所示两种方案中 的各流的流量。 图3 MQVC中各流的流量 图4 SQVC中各流的流量 表 2 实验中的流参数 声明检查间隔时间 (S) 0.1 0.1 0.1 流号 流 0 流 1 流 2 实际速率 (Kbps) 20 50 50 分组大小 (Bytes) 40 40 40 预留带宽 (Kbps) 20/0.032S 30/0.01067S 50/0.0064S 2.在有个别流超出其预留资源的情况即出现“恶意流”时,两种方案性能有差别。 基本流参数如表1所示。图5和图6分别为MQVC和SQVC的各流流量;图7和图8分别为 图5 MQVC中各流流量 - 8 - 图6 SQVC中各流流量 MQVC和SQVC的各流队列延迟;图9和图10分别为MQVC和SQVC的各流端到端延迟;表2 为各流分组丢失情况。 由各图表对比得到: (1)MQVC中的多队列机制,使得各个流的隔离性加强,恶意流超额数据对其他正常 流的影响非常小,各流基本保持以预留速率获得服务。即使恶意流发送较多的数据,也会 使自己缓存溢出而丢弃过多分组保持以预留速率获得服务而受得惩罚。而在SQVC中则没有 图 7 MQVC中各流队列延迟 图 8 SQVC中各流队列延迟 表 3 各流分组丢失对比(0~5.0s) 算法 MQVC 流号 0 1 2 0 SQVC 1 2 总分组数 312 784 782 311 784 782 丢失分组数 理论丢失率 0 0 284 0 45 93 88 40% 0 0 40% 0 实际丢失率 0 36.224% 0 14.47% 11.86% 11.25% 图 9 MQVC中各流端到端延迟 - 9 - 图 10 SQVC中各流端到端延迟 严格隔离各个流,使得恶意流对其他正常流影响非常大,甚至出现恶意流抢占正常流资源 的情况。 (2)MQVC中每个流的分组延迟也不受其他流的影响。由图7和图8,MQVC中恶意流 的延迟由于受其缓存大小影响在丢弃一定的分组后基本保持稳定,正常流分组队列延迟几 乎为零;SQVC中受恶意流影响,各个流的队列延迟都非常大。各个流的端到端延迟亦同 样。 (3)MQVC由于系统中各流的参数不同,预留资源量亦不同,在正常情况下,可以很 好的满足不同流的服务需求。 (4)由表3,MQVC中各流不受恶意流的影响,恶意流的实际分组丢失率接近于理论计 算的分组丢失率。而SQVC中由于各流相互影响,使得正常流也出现分组丢失现象,恶意流 抢占正常流的资源。 综上可得,改进算法很好的达到了改进目的,加强了流的隔离和保护,减小了系统开 销,是一种较好满足各种服务需求、系统效率高、能够有效满足服务速率保证、时延保证 和流隔离监视的调度算法。 5 结论 本文通过对VC算法和GPS/PGPS算法的分析,提出了一种多队列的VC 算法-MQVC 算法,分析显示该算法保持单队列VC的优点,在具有与单队列VC相同的端到端时延特性 的前提下,通过减少系统中分组排序处理,使得单队列VC中系统处理分组排序的复杂度 由原来的O(log(m*n))降为MQVC下的O(logm),极大的减小了系统开销,提高了效率,节 省了系统资源,使得系统设计简化,为高速路由器的设计开发提供了新的思路。 参考文献 [1] Demers A, Keshav S, and Shenker S. Analysis and simulation of a fair-queueing algorithm[A]. In Proceedings of ACM SIGCOMM’89[C]. 1989, 19(4) : 1-12. [2] 王宏宇,顾冠群 (WANG Hong-yu, GU Guan-qun). 集成服务网络中的分组调度算法 研究综述(The Research of Packet Scheduling Algorithms within Integrated Services Network: A Survey)[J].计算机学报(Chinese Journal of Computers),1999,22(10): 1090 —1099. [3] Zhang Lixia, Virtual Clock: A new traffic control algorithm for packet switching networks[A]. Proc ACM SIGCOMM’90[C].New York:The Association for Computeing Machinery,Inc,1990 : 19-29. [4] Zhang Lixia. A new Architecture for packet Switching Networks Protocols[PhD. Thesis]. Dept. Elect. Eng. And .,MIT,Aug,1989. [5] Parekh A K and Gallager R G. A generalized processor sharing approach to flow control in integrated services networks: The single-node case[J]. IEEE/ACM Transactions on Networking, 1993 1(3) : 344—357. [6] Suri S. Leap forward Virtual Clock: a new fair queuing scheme with guaranteed delays and throughput fairness[A], IEEE Infocom’97[C]. Kobe:IEEE, 1997 : 557-565. [7] Xie G G, Lam Simon S, Delay Guarantee of VC Server[J], IEEE/ACM Transactions on - 10 - Networking, 1995 3(6) : 683-689. [8] Figueira N R, Pasquale J. An Upper Bound on Delay for the VirtualClock Service Discipline[J]. IEEE/ACM Transactions on Networking, 1995 3(4) : 399—408. [9] Bennett J , Zhang H. WF 2 Q: Worst-Case Fair Weighted Fair Queueing[A], Proc. IEEE Infocom’96[C], San Francisco,CA, 1996 : 120-128. [10] Bennett C R, Zhang H. Hierarchical packet fair queueing algorithms[J] IEEE/ACM Transactions on Networking, 1997, 5(5) : 675-689. [11] Goyal P, Vin H, and Cheng H. Start-time Fair Queueing: A scheduling algorithm for integrated services packet switching networks[A]. In Proc. ACM SIGCOMM'96[C], Stanford, CA, 1996: 157—168. [12] 胡刚,何骏,范戈(HU Gang, HE Jun, FAN Ge).改进的前跳虚时钟调度算法(Enhanced Leap Forward Virtual Clock Scheduling Algorithm)[J]. 上海交通大学学报(JOURNAL OF SHANGHAI JIAOTONG UNIVERSITY),2002,36 (6):785-788. [13] 王振凯,刘斌,徐光祐(WANG Zheng-kai, LIU Bin, XU Guang-you). 核心无状态虚拟 时钟调度策略(Core-stateless virtual clock scheduling algorithms)[J].清华大学学报(自然科学 版)(Journal Tsinghua University Sci.&Tech.). 2003,43(1):86-89. [14] 杨帆,刘增基(YANG Fan,LIU Zeng-ji). 基于服务量差值的virtual clock接入允 许控制算法 (The admission control algorithm based on difference of service for the virtual clock packet scheduling algorithm)[J]. 西安电子科技大学学报(自然科学版)(Journal of XIDIAN University),2002,29(4):429-433. Multi-queued VC Algorithm Research WU Shun-xian LIU Yan-heng TIAN Ming Department of Computer Science &Technology, JLU, Changchun 130012 Abstract: In this paper, based on the analysis of VC and GPS/PGPS, we propose an improved VC scheduling algorithm model with GPS scheduling algorithm's characteristics, which is called MQVC. We present the design objectives,improving methods,MQVC model and algorithm description in pseudo-code. It is proved theoretically that this model is much better than single-queued VC and PGPS scheduling algorithm model in such aspects as implementation complexity, system scheduling performances and packet loss. Our experimentations in Network Simulator version 2 showed that the algorithm has an excellent - 11 - performance of Quality of Service. Key words: Scheduling Algorithm, Virtual Clock, MQVC, GPS, Quality of Service. 作者简介: 吴舜贤(1979-),男,河南新乡人,吉林大学硕士研究生,主要从事 网络协议与移动IP QoS研究,E-Mail:wushxian@126.com;刘衍珩(1958-),男, 吉林松原人,吉林大学教授,工学博士,博士生导师,主要从事计算机通信与网络 研究 E-Mail: lyh_lb_lk@yahoo.com.cn。 - 12 -
发布者:admin,转转请注明出处:http://www.yc00.com/web/1712850580a2134380.html
评论列表(0条)