概述
WFQ是一个复杂的排队过程,可以保证相同优先级业务间公平,不同优先级业务间加权。队列的数目可预先配置,范围是(16-4096)。
WFQ,在保证公平(带宽、延迟)的基础上体现权值,权值大小依赖于JP报文头中携带的IP优先级(Precedence)。WFQ对报文按流进行分类(相同源IP地址,目的IP地址,源端口号,日的端口号,协议号,Precedence的报文属于同一个流),每一个流被分配到一个队列,该过程称为散列。
WFQ入队过程采用HASH算法来自动完成,尽量将不同的流分入不同的队列。 在出队的时候,与使用循环调度一样,WFQ调度器也以循环的方式为各个队列提供服务,与循环排队的不同之处在于,每个队列在任何时间间隔内可能收到不同数量的服务; WFQ按流的优先级(precedence)来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。这样就保证了相同优先级业务之间的公平,体现了不同优先级业务之间的权值。
如:接口中当前有8个流,它们的优先级分别为O,2,2,3,4,5,6,7。则带宽的总配额将是:所有(流的优先级+1)的和。
即:1+3+3+4+5+6+7+8=37
每个流所占带宽比例为:(自己的优先级数+1),(所有(流的优先级+1)的和)。即,每个流可得的带宽分别为:
1/37,3/37,3/37,4/37,5/37,5/37,6/37,7/37,8/37。
由此可见,WFQ在保证公平的基础上对不同优先级的业务体现权值,而权值依赖于IP报文头中所携带的IP优先级。
WFQ优点:
- 配置简单(不用手工分类)
- 保证所有的流都有一定的带宽
- 丢弃野蛮流量
- 大多数平台上都支持
- 支持所有IOS版本
WFQ缺点:
- 每个子队列都继承了FIFO的缺点
- 多个不同的流可能会被分入同一个队列(流的数量超过了配置的队列数)
- 不支持手工分类
- 不能提供固定带宽保证
- 因为使用了复杂的分类和调度机制,对系统资源有一定的限制
最后
以上就是谦让裙子为你收集整理的WFQ-加权公平排队的全部内容,希望文章能够帮你解决WFQ-加权公平排队所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复