当前位置:网站首页>QoS服务质量七交换机拥塞管理

QoS服务质量七交换机拥塞管理

2022-08-10 18:37:00 0与1之旅

4.2.3、交换机拥塞管理

4.2.3.1、WRR权重轮询队列技术

WRR(Weight Round Robin,权重轮询)在队列之间进行轮流调度,根据每个队列的权重来调度各队列中的报文流。

主要解决RR不能设置权重的不足。 在轮询的时候,WRR 每个队列享受的调度机会和该队列的权重成比例。RR调度相当于权值为1的WRR调度。

WRR对于空的队列直接跳过,调度一周结束的时间变短,因此当某个队列的流量小的时候,剩余带宽能够被其他队列按照比例占用。

1、RR轮询队列循环调度机制
RR(Round Robin,循环调度),采用轮询的方式,对多个队列进行调度。RR 以环形的方式轮询多个队列。 如果轮询的队列不为空,则从该队列取走一个报文;如果该队列为空,则直接跳过该队列,调度器不等待。RR 调度各个队列之间没有优先级之分,都能够有相等的概率得到调度。

RR 调度的优点:隔离了不同的流,实现了队列之间对带宽的平等利用。
RR 调度的缺点是:所有队列无法体现优先级,对于延迟敏感的关键业务和非关键业务 无法得到区别对待,使得关键业务无法及时得到处理。

2、WRR权重轮询队列实现方法
为每个队列设置一个计数器 Count,根据权重进行初始化。

每次轮询到一个队列时,该队列输出一个报文且计数器减一。当计数器为 0 时停止调度该队列,但继续调度其他计数器不为 0 的队列。当所有队列的计数器都为 0 时,所有计数器重新根据权重初始化,开始新一轮调度。在一个循环中,权重大的队列被多次调度。

队列索引Q7Q6Q5Q4Q3Q2Q1Q0
队列权值42536421
第1轮调度Q7Q6Q5Q4Q3Q2Q1Q0
第2轮调度Q7Q6Q5Q4Q3Q2Q1-
第3轮调度Q7-Q5Q4Q3Q2--
第4轮调度Q7-Q5-Q3Q2--
第5轮调度--Q5-Q3---
第6轮调度----Q3---
第7轮调度Q7Q6Q5Q4Q3Q2Q1Q0
第8轮调度Q7Q6Q5Q4Q3Q2Q1-
第9轮调度Q7-Q5Q4Q3Q2--

在进行WRR调度时,设备根据每个队列的权值进行轮循调度。调度一轮权值减一权值减到零的队列不参加调度,当所有队列的权限减到0时,开始下一轮的调度。例如,用户根据需要为接口上8个队列(q7、q6、q5、q4、q3、q2、ql)指定的权值分为4、2、5、3、6、4、2和1。

根据权重比例调度
假设有三个队列工作且采用WRR调度方式,三个队列的权重比例分别为50%,25%,25%,按照权重比例调度,权重50%比例队列发送2个报文时,另外队列分别了一份报文。

权重比例调度队列
3、WRR特点
(1).权重小的,延时很大,很久得不到轮询;
(2).以报文为单位,导致每个队列没有固定带宽,同等调度机会下大尺寸获得的带宽要大于小尺寸;
(3).每个队列都能得到带宽,不会饿死。

优点:

  • 能够按照权重来分配带宽,某个队列的剩余带宽能够为其他队列公平占用,低优先级的队列同样能够得到调度,不存在饥饿的问题。
  • 实现简单、复杂度低。
  • 适合diffserv聚合后的端口。

缺点:

  • 与RR调度算法一致,在报文长度不一致的时候,调度不准确。
  • 在调度速率低的时候报文的时延控制的不好,时延抖动无法预期。
  • 对于低时延业务无法保证及时调度。

4、配置案例
在这里插入图片描述

全局模式:

[LSW1] qos schedule-profile sp        //创建全局调度模版sp
[LSW1-qos-schedule-profile-sp] qos queue 2 wrr weight 40    //队列2权重40。
[LSW1-qos-schedule-profile-sp] qos queue 5 wrr weight 60   //队列5权重60。
[LSW1-qos-schedule-profile-sp] quit

[LSW1] interface GigabitEthernet 0/0/3
[LSW1-GigabitEthernet0/0/3] qos schedule-profile sp  //接口出方向应用WRR调度配置
[LSW1-GigabitEthernet0/0/3] quit

[LSW1] interface GigabitEthernet 0/0/1
[LSW1-GigabitEthernet0/0/1] trust 8021p  //信任802.1p优先级
[LSW1-GigabitEthernet0/0/1] quit

[LSW1] interface GigabitEthernet 0/0/2
[LSW1-GigabitEthernet0/0/2] trust 8021p

查看接口GE0/0/3上基于队列的流量统计信息

<LSW1> display qos queue statistics interface GigabitEthernet 0/0/3

接口模式:

[LSW1] interface GigabitEthernet 0/0/3
[LSW1-GigabitEthernet0/0/3] qos wrr
[LSW1-GigabitEthernet0/0/3] qos queue 2 wrr weight 40
[LSW1-GigabitEthernet0/0/3] qos queue 5 wrr weight 60

4.2.3.2、DRR差分轮询队列技术

DRR(Deficit Round Robin,差分轮询)调度实现原理与 RR 调度基本相同。 DRR 与 RR 的区别是:RR 调度是按照报文个数进行调度,而 DRR 是按照报文长度进行调度。

DRR为每个队列设置一个计数器Deficit,Deficit初始化为一次调度允许的最大字节数,(假设为Quantum,一般为接口MTU)。每次轮询到一个队列时,如果报文长度小于Deficit,则该队列输出一个报文,且计数器Deficit减去报文长度。如果报文长度超过了Deficit,报文不被发送,Deficit值不变,继续调度下一个队列。每一次轮询之后,为每个队列加上Quantum,再开始新一轮调度。DRR调度避免了采用SP调度时低优先级队列中的报文可能长时间得不到服务的缺点。但是,DRR调度不能设置权重,且也具有低延时需求业务(如语音)得不到及时调度的缺点。

DRR调度避免了采用SP调度时低优先级队列中的报文可能长时间得不到服务的缺点。但是,DRR调度不能设置权重,且也具有低延时需求业务(如语音)得不到及时调度的缺点。

4.2.3.3、MDRR修正差分轮询队列技术

MDRR(Modified Deficit Round Robin,修正差分循环)是一种改良的DRR算法。MDRR和DRR实现类似,差别在于:MDRR调度允许Deficit出现负值,以保证长报文也能够得到调度。但下次轮循调度时该队列将不会被调度。当计数器为0或负数时停止调度该队列,但继续调度其他计数器为正数的队列。

MDRR修正差分循环调度:

假设某端口MTU=150Bytes,有2个队列Q1和Q2采用MDRR调度,Q1队列中有多个200Bytes的长报文,Q2队列中有多个100Bytes的短报文,则调度过程如下图:
MDRR修正差分循环调度

经过第1~6轮MDRR调度,Q1队列被调出了3个200Bytes的报文,Q2队列被调出了6个100Bytes的报文。从长期的统计看,Q1和Q2的实际输出带宽比是1:1,为公平的比例。

与DRR相比,MDRR中拥有一个可以被优先服务的优先队列(Priority Queue)。这样可以保证特殊的队列的时延要求。也可以比较有效的分配带宽,是一种相对较好的调度算法。

4.2.3.4、WDRR加权差分轮询队列技术

WDRR(Weighted Deficit Round Robin,加权差分轮询)调度主要解决DRR不能设置权重的不足。DRR调度相当于权值为1的WDRR调度。调度实现原理与WRR调度基本相同。

WDRR调度与WRR调度的区别是:WRR调度是按照报文个数进行调度,而WDRR是按照报文长度进行调度。如果报文长度超过了队列的调度能力,WDRR调度允许出现负权重,以保证长报文也能够得到调度。但下次轮询调度时该队列将不会被调度,直到权重为正,该队列才会参与WDRR调度。

WDRR调度避免了采用PQ调度时发生拥塞的情况下队列饥饿的缺点,也避免了各队列报文长度不等或变化较大时,WRR调度不能按配置比例分配带宽资源的缺点。但是,WDRR调度也具有时延敏感业务(如语音)得不到及时调度的缺点。当所有参与WDRR调度的队列的权重相同时,WDRR调度与DRR调度效果相同。

WDRR加权差分轮询调度:
DWRR 为每个队列设置一个计数器 Deficit,Deficit 初始化为 WeightMTU。每次轮 询到一个队列时,该队列输出一个报文且计数器 Deficit 减去报文长度。当计数器 为 0 时停止调度该队列,但继续调度其他计数器不为 0 的队列。当所有队列的计数 器都为 0 时,所有计数器的 Deficit 都加上 WeightMTU,开始新一轮调度。

WDRR算法两个变量:配额(quantum)和余额(credit counter),配额代表权重,以字节为单位,是可配置的参数,余额用来表示配额的积累和消耗情况,是状态参数,不可配置。

配额= Weight*MTU Weight范围为0~127,Weight为0表示严格优先级。
初始状态下:余额=配额;
当队列每发送一个报文时:余额=配额-报文的字节数。

假设某端口MTU=150Bytes,有2个队列Q1和Q2采用DRR调度,Q1队列中有多个200Bytes的长报文,Q2队列中有多个100Bytes的短报文,Q1和Q2配置权重比为weight1:weight2=2:1。Q1的余额=2x150=300Bytes ;Q2的余额=1x150=150Bytes。则调度过程如下图:
WDRR加权差分轮询调度

从上图可以看出:

  • 第一次调度
    Deficit[1] 余额=weight1* MTU=300,Deficit[2]余额 = weight2* MTU=150,从Q1队列取出200Bytes报文发送,从Q2队列取出100Bytes发送;发送后,Deficit[1]余额 = 100,Deficit[2]余额 =50。

  • 第二次调度
    从Q1队列取出200Bytes报文发送,从Q2队列取出100Bytes发送;发送后,Deficit[1]余额= -100,Deficit[2]余额=-50。

  • 第三次调度
    此时两个队列都为负,因此,Deficit[1]余额 = Deficit[1]+weight1* MTU=-100+2150=200,Deficit[2]余额 = Deficit[2]+weight2 MTU=-50+1*150=100。
    从Q1队列取出200Bytes报文发送,从Q2队列取出100Bytes发送;发送后,Deficit[1] = 0,Deficit[2] = 0。

经过第1~3轮WDRR调度,Q1队列被调出了3个200Bytes的报文,Q2队列被调出了3个100Bytes的报文。从长期的统计看,Q1和Q2的实际输出带宽比是2:1,与权重比相符。

WDRR调度避免了采用SP调度时低优先级队列中的报文可能长时间得不到服务的缺点,也避免了各队列报文长度不等或变化较大时,WRR调度不能按配置比例分配带宽资源的缺点。

但是,WDRR调度也具有低延时需求业务(如语音)得不到及时调度的缺点。

4.2.3.5、PQ+WRR/PQ+WDRR调度

PQ调度和WRR/WDRR调度各有优缺点。单纯采用PQ调度时,低优先级队列中的报文长期得不到带宽,而单纯采用WRR/WDRR调度时低延时需求业务得不到优先调度,PQ+WRR/PQ+WDRR调度方式则将前两种调度方式结合起来,不仅能发挥两种调度的优势,而且能克服两种调度各自的缺点。

用户可以借助PQ+WRR/PQ+WDRR调度方式,将重要的协议报文和时延敏感业务报文放入采用PQ调度的队列中,并为该队列分配指定带宽;而将其他报文按各自的优先级放入采用WRR/WDRR调度的各队列中,按照权值对各队列进行循环调度。

交换机优先级映射的配置:
应用场景:不同网络中的报文使用不同的优先级字段,例如二层网络中的报文使用802.1p优先级,三层网络中的报文使用DSCP优先级。报文在进入设备时,设备将报文携带的优先级映射到内部服务等级和颜色,再根据服务等级和颜色对报文进行不同的QoS服务。报文在出设备时,设备可以根据内部服务等级和颜色重标记报文优先级,以便后续网络根据报文优先级进行服务。
交换机优先级映射

1、配置端口优先级
[SW2] interfaceinterface-type interface-number
配置端口优先级。
[SW2-GigabitEthernet0/0/0] port priority priority-value //缺省情况下,端口优先级为0。
当接口通过undo portswitch切换到三层模式后,不能配置端口优先级值,端口优先级值均为0。
2、配置DiffServ域
创建DiffServ域并进入DiffServ域视图。
[SW2] diffserv domain { default | ds-domain-name }
在接口入方向,将VLAN报文的802.1p优先级映射为PHB行为,并为报文着色
[SW2-dsdomain-ds1] 8021p-inbound 8021p-value phb service-class [ green | yellow | red ]

在接口出方向,将PHB行为/颜色映射为VLAN报文的802.1p优先级
[SW2-dsdomain-ds1] 8021p-outbound service-class { green | yellow | red } map 8021p-value

在接口入方向,将IP报文的DSCP优先级映射为PHB行为,并为报文着色
[SW2-dsdomain-ds1] ip-dscp-inbound dscp-value phb service-class [ green | yellow | red ]
在接口出方向,将PHB行为/颜色映射为IP报文的DSCP优先级
[SW2-dsdomain-ds1] ip-dscp-outbound service-class { green | yellow | red } map dscp-value

在接口入方向,将MPLS报文的EXP优先级映射为PHB行为,并为报文着色
[SW2-dsdomain-ds1] mpls-exp-inbound exp-value phb service-class [ color ]
在接口出方向,将PHB行为/颜色映射为MPLS报文的EXP优先级
[SW2-dsdomain-ds1] mpls-exp-outbound service-class color map exp-value

3、应用DiffServ域
[SW2] interfaceinterface-type interface-number
在接口上绑定DiffServ域
[SW2-GigabitEthernet0/0/0] trust upstream { ds-domain-name | default | none } //none不做优先级映射
取消对接口出方向的报文进行PHB映射
[SW2-GigabitEthernet0/0/1] undo qos phb marking enable

4、内部优先级和队列之间的映射
配置内部优先级和队列之间的映射关系。
[SW2] qos local-precedence-queue-map local-precedence queue-index

5、检查优先级映射配置结果
查看DiffServ域的配置信息。
[SW2] display diffserv domain [ all | name ds-domain-name ]

PQ+WDRR调度:
1、进入接口视图。
[RA] interfaceinterface-type interface-number
2、配置端口队列的调度方式。

  • 配置端口队列调度方式为PQ、WRR或WDRR。
    [RA-GigabitEthernet0/0/0] qos { pq | wrr | drr }

  • 配置端口队列调度方式为PQ+WRR或PQ+WDRR。
    [RA-GigabitEthernet0/0/0] qos { pq { start-queue-index [ to end-queue-index ] } &<1-8> | { wrr | drr } { start-queue-index [ to end-queue-index ] } &<1-8> } *

  • PQ+WRR时指定端口队列WRR调度的权值。
    [RA-GigabitEthernet0/0/0] qos queue queue-index wrr weight weight

  • PQ+WDRR时指定端口队列WDRR调度的权值。
    [RA-GigabitEthernet0/0/0] qos queue queue-index drr weight weight

3、检查配置结果:
查看指定接口上所有的QoS配置信息。
[RA] display qos configuration interface [ interface-type interface-number ]
查看接口上基于队列的流量统计信息。
[RA] display qos queue statistics interface interface-type interface-number [ queue queue-index ]

综合案例:
参考:S7700 V200R021C10 配置指南-QoS
https://support.huawei.com/enterprise/zh/doc/EDOC1100247678/7e29c35d

原网站

版权声明
本文为[0与1之旅]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42227328/article/details/126126490