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


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

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

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

    接口模式:

    [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
    
    • 1
    • 2
    • 3
    • 4

    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] interface interface-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] interface interface-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] interface interface-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

  • 相关阅读:
    CSV(Comma-Separate-Values)逗号分隔值文件
    概率论和数理统计(二) 数字特征与大数定律
    【网络攻击】XSS和CSRF
    【高等の数学】e^-3x的一阶导数
    JUC笔记(二) --- Java线程
    Centos6.9安装redis-dump
    什么是ElasticSearch的深度分页问题?如何解决?
    借助适用于 Android 的 Material 运动效果构建精美的过渡
    为何你的算法总是比别人的慢?【21天算法系列】之顺序查找算法【Java 版】
    Spring beans
  • 原文地址:https://blog.csdn.net/weixin_42227328/article/details/126126490