目录

简介

先决条件

要求

使用的组件

规则

背景信息

输出队列丢弃

Catalyst 6500/6000上不同线路卡的输出排队功能

了解端口的队列功能

Catalyst 6500/6000上的配置、监控和输出调度示例

配置

监控输出调度并检验配置

输出调度示例

使用输出调度来减少延迟和抖动

减少延迟

减少抖动

结论

相关信息

简介

使用输出调度可确保在出现严重超订用时不会丢弃重要流量。本文讨论在Catalyst 6500/6000交换机上进行输出调度涉及的所有技术和算法。本文档还说明如何在运行Cisco IOS®软件的Catalyst 6500/6000上配置和验证输出调度的操作。

有关加权随机早期检测(WRED)、加权轮询(WRR)和尾部丢弃的详细信息，请参阅运行CatOS系统软件的Catalyst 6500/6000系列交换机上的QoS输出调度。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

背景信息

输出队列丢弃

输出丢弃是由拥塞的接口导致的。造成这种情况的一个常见原因可能是来自高带宽链路的流量切换到低带宽链路，或来自多个入站链路的流量切换到单个出站链路。

例如，如果有大量数据流突然从千兆输入接口涌入并被切换到 100 Mbps 输出接口上，这可能导致 100 Mbps 接口的输出丢包增加。这是因为流入和流出的带宽之间的速度不匹配，导致接口的输出队列被超额数据流淹没。传出接口上的流量速率无法接受应发送的所有数据包。

为了解决问题，最佳的解决方案是提高线速。但是，如果您不希望提高线路速度，也有用于防止、减少或控制输出丢弃的方法。只有当输出丢弃的是短期突发数据时，可以防止输出丢弃。如果输出丢弃是由恒定高速率流导致的，则无法防止丢弃。但是，您可以对其进行控制。

Catalyst 6500/6000上不同线路卡的输出排队功能

如果不确定端口的排队功能，请发出show queueing interface {gigabitethernet | fastethernet} mod/port命令。此处显示的是show queueing interface命令的输出行。该端口位于Supervisor引擎1A线卡上：

cosmos#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

QoS is disabled globally

Trust state: trust DSCP

Default COS is 0

Transmit group-buffers feature is enabled

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

!--- Output suppressed.

输出显示此端口的输出队列类型称为1p2q2t。

查看特定端口上可用的队列类型的另一种方法是发出show interface capabilities命令：

la-orion#show interface gigabitethernet 6/2 capabilities

GigabitEthernet6/2

Model:                 WS-SUP720-BASE

Type:                  No GBIC

Speed:                 1000

Duplex:                full

Trunk encap. type:     802.1Q,ISL

Trunk mode:            on,off,desirable,nonegotiate

Channel:               yes

Broadcast suppression: percentage(0-100)

Flowcontrol:           rx-(off,on,desired),tx-(off,on,desired)

Membership:            static

Fast Start:            yes

QOS scheduling:        rx-(1p1q4t), tx-(1p2q2t)

CoS rewrite:           yes

ToS rewrite:           yes

Inline power:          no

SPAN:                  source/destination

UDLD                   yes

Link Debounce:         yes

Link Debounce Time:    yes

Ports on ASIC:         1-2

了解端口的队列功能

Catalyst 6500/6000交换机上有几种类型的队列。下表说明了端口QoS架构的表示法：

发送(Tx)/接收(Rx)

队列表示法

队列数量

优先级队列

WRR队列数量

WRR队列数量及类型阈值

Tx

2q2t

2

—

2

2个可配置尾部丢弃

Tx

1p2q2t

3

1

2

2个可配置WRED

Tx

1p3q1t

4

1

3

1个可配置WRED

Tx

1p2q1t

3

1

2

1个可配置WRED

Rx

1q4t

1

—

—

4个可配置尾部丢弃

Rx

1p1q4t

2

1

1

4个可配置尾部丢弃

Rx

1p1q0t

2

1

1

不可配置

Rx

1p1q8t

2

1

1

8个可配置WRED

Tx

1p3q8t

4

1

3

8个可配置WRED或尾部丢弃

Tx

1p7q8t

8

1

7

8个可配置WRED或尾部丢弃

Rx

1q2t

1

—

—

1个可配置尾部丢弃= 1个不可配置

Rx

1q8t

1

—

—

8个可配置尾部丢弃

Rx

2q8t

2

—

2

8个可配置尾部丢弃

下表列出了接口或端口的Rx和Tx端中的一些模块和队列类型。如果此处未列出模块，请使用show interface capabilities命令确定可用的队列功能。show interface capabilities命令在Catalyst 6500/6000上不同线卡的输出排队功能一节中描述。

module

接收队列

发送队列

WS-X6K-S2-PFC2

1p1q4t

1p2q2t

WS-X6K-SUP1A-2GE

1p1q4t

1p2q2t

WS-X6K-SUP1-2GE

1q4t

2q2t

WS-X6501-10GEX4

1p1q8t

1p2q1t

WS-X6502-10GE

1p1q8t

1p2q1t

WS-X6516-GBIC

1p1q4t

1p2q2t

WS-X6516-GE-TX

1p1q4t

1p2q2t

WS-X6416-GBIC

1p1q4t

1p2q2t

WS-X6416-GE-MT

1p1q4t

1p2q2t

WS-X6316-GE-TX

1p1q4t

1p2q2t

WS-X6408A-GBIC

1p1q4t

1p2q2t

WS-X6408-GBIC

1q4t

2q2t

WS-X6524-100FX-MM

1p1q0t

1p3q1t

WS-X6324-100FX-SM

1q4t

2q2t

WS-X6324-100FX-MM

1q4t

2q2t

WS-X6224-100FX-MT

1q4t

2q2t

WS-X6548-RJ-21

1p1q0t

1p3q1t

WS-X6548-RJ-45

1p1q0t

1p3q1t

WS-X6348-RJ-21

1q4t

2q2t

WS-X6348-RJ21V

1q4t

2q2t

WS-X6348-RJ-45

1q4t

2q2t

WS-X6348-RJ-45V

1q4t

2q2t

WS-X6148-RJ-45V

1q4t

2q2t

WS-X6148-RJ21V

1q4t

2q2t

WS-X6248-RJ-45

1q4t

2q2t

WS-X6248A-TEL

1q4t

2q2t

WS-X6248-TEL

1q4t

2q2t

WS-X6024-10FL-MT

1q4t

2q2t

Catalyst 6500/6000上的配置、监控和输出调度示例

配置

本节介绍在运行Cisco IOS软件的Catalyst 6500/6000上配置输出调度所需的所有步骤。有关Catalyst 6500/6000默认配置，请参阅案例1:QoS已启用，并且使用了默认参数部分。

配置Catalyst 6500/6000意味着以下五个步骤：

1. 启用QoS

2. 将每个可能的服务类别(CoS)值映射到队列和阈值（可选）

3. 配置WRR权重（可选）

4. 配置分配给每个队列的缓冲区（可选）

5. 配置每个队列的阈值级别（可选）

注：除步骤1外，这些步骤均为可选步骤。您可以决定保留一个或多个参数的默认值。

步骤 1：启用QoS

首先，启用QoS。请记住，QoS默认值禁用。禁用QoS后，您配置的CoS映射不会影响结果。有一个队列以先进先出(FIFO)方式提供服务，所有数据包都会在此丢弃。

cosmos#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

cosmos(config)#mls qos

QoS is enabled globally

Microflow policing is enabled globally

QoS global counters:

Total packets: 552638

IP shortcut packets: 0

Packets dropped by policing: 0

IP packets with TOS changed by policing: 0

IP packets with COS changed by policing: 0

Non-IP packets with CoS changed by policing: 0

步骤 2：将每个可能的CoS值映射到队列和阈值

对于所有队列类型，将CoS分配到队列和阈值。为2q2t类型的端口定义的映射未应用于任何1p2q2t端口。此外，2q2t的映射应用于具有2q2t排队机制的所有端口。在接口下发出以下cos-map命令：

wrr-queue  cos-map Q_number_(1-2) threshold_number_(1-2) cos_value_1 cos_value_2

priority-queue cos-map Q_number_(always 1) cos_value_1 cos_value_2

注意：这些命令应位于一行。

您可以单独配置WRR队列。如果存在优先级队列，可以使用priority-queue命令对其进行配置。

注意：队列始终从可能的最低优先级队列开始编号，以可用的严格优先级队列结束。例如：

- 队列1是低优先级WRR队列。

- 队列2是高优先级WRR队列。

- 队列3是严格优先级队列。

对所有类型的队列重复此操作，否则默认CoS分配将保留。以下是1p2q2t的示例配置：

cosmos#configure terminal

cosmos(config)#interface gigabitethernet 1/1

cosmos(config-if)#priority-queue cos-map 1 5

!--- Assign a CoS of 5 to priority queue.

cos-map configured on:  Gi1/1 Gi1/2

cosmos(config-if)#wrr-queue cos-map 1 1 0 1

!--- Assign CoS 0 and 1 to the first threshold of low-priority WRR queue.

cos-map configured on:  Gi1/1 Gi1/2

cosmos(config-if)#wrr-queue cos-map 1 2 2 3

!--- Assign CoS 2 and 3 to the second threshold of low-priority WRR queue.

cos-map configured on:  Gi1/1 Gi1/2

cosmos(config-if)#wrr-queue cos-map 2 1 4 6

!--- Assign CoS 4 and 6 to the first threshold of high-priority WRR queue.

cos-map configured on:  Gi1/1 Gi1/2

cosmos(config-if)#wrr-queue cos-map 2 2 7

!--- Assign CoS 7 to the first threshold of high-priority WRR queue.

cos-map configured on:  Gi1/1 Gi1/2

检查配置：

cosmos#show queueing interface gigabitethernet 1/1

!--- Output suppressed.

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

2     1      4 6

2     2      7

3     1      5

!--- Output suppressed.

步骤 3：配置WRR权重

配置两个WRR队列的WRR权重。发出以下接口命令：

wrr-queue bandwidth weight_for_Q1 weight_for_Q2

权重1与队列1相关，队列1应是低优先级WRR队列。请始终将此权重保持在比权重2低一个水平。权重可以采用1到255之间的任意值。使用以下公式分配百分比：

- 排队1 - [权重1 /（权重1 +权重2）]

- 排队2 - [权重2 /（权重1 +权重2）]

必须定义所有类型队列的权重。这些加权类型不必相同。以下是2q2t的示例，其中队列1的服务时间为20%，队列2的服务时间为80%:

cosmos#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

cosmos(config)#interface gigabitethernet 1/1

cosmos(config-if)#wrr-queue bandwidth ?

<1-255>  enter bandwidth weight between 1 and 255

cosmos(config-if)#wrr-queue bandwidth 20 80

!--- Queue 1 is served 20% of the time, and queue 2 is served !--- 80% of the time.

cosmos(config-if)#

检查配置：

cosmos#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Port is untrusted

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:   20[queue 1]  80[queue 2]

queue-limit ratios:     90[queue 1]   5[queue 2]

!--- Output suppressed.

注意：当无法使用CatOS软件时，您可以为每个接口配置不同的WRR权重。

步骤 4：配置分配给每个队列的缓冲区

必须定义传输队列比率。这决定了缓冲区如何在不同队列之间拆分。

wrr-queue queue-limit percentage_WRR_Q1 percentage_WRR_Q2

cosmos(config)#interface gigabitethernet 1/2

cosmos(config-if)#wrr-queue queue-limit 70 15

!--- Queue 1 has 70% of the buffers. !--- Queues 2 and 3 both have 15% of the buffers.

queue-limit configured on:  Gi1/1 Gi1/2

注意：如果千兆端口的排队功能为1p1q2t，则需要对严格优先级队列和高优先级WRR队列使用相同的级别。这些级别不能因硬件原因而不同。仅配置两个WRR队列的带宽。如果存在，则自动将相同值用于高优先级WRR队列和严格优先级队列。

某些队列类型的队列大小不可调。例如，1p3q1t（在WS-X6548RJ45上可用）。这些队列类型是固定的，您不能修改它们。

检查配置：

cosmos#show queueing interface gigabitethernet 1/2

Interface GigabitEthernet1/2 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Port is untrusted

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:    5[queue 1] 255[queue 2]

queue-limit ratios:     70[queue 1]  15[queue 2]

注意：最好保留低优先级WRR队列缓冲区的最大部分。这是需要启用其他缓冲的队列。其他队列的优先级更高。

步骤 5：配置每个队列的阈值级别

最后，配置WRED队列或尾部丢弃队列的阈值级别。此列表提供以下命令：

- 对于使用WRED作为阈值丢弃机制的队列，请发出以下命令：

wrr-queue random-dtect min-threshold Q_number threshold_1_value threshold_2_value

wrr-queue random-dtect max-threshold Q_number threshold_1_value threshold_2_value

注意：这些命令应位于一行。

- 对于使用尾部丢弃作为丢弃机制的队列，请发出以下命令：

wrr-queue threshold Q_number threshold_1_value threshold_2_value

注意：此命令应位于一行。

配置WRED队列：

cosmos(config)#interface gigabitethernet 1/1

cosmos(config-if)#wrr-queue random-detect min-threshold  1 20 50

!--- This sets the threshold of queue 1 to 20 and 50% minimum threshold !--- configured on Gi1/1 Gi1/2.

cosmos(config-if)#wrr-queue random-detect min-threshold  2 20 50

!--- This sets the threshold of queue 2 to 20 and 50% minimum threshold !--- configured on Gi1/1 Gi1/2.

cosmos(config-if)#wrr-queue random-detect max-threshold  1 50 80

!--- This sets the threshold of queue 1 to 50 and 80% maximum threshold !--- configured on Gi1/1 Gi1/2.

cosmos(config-if)#wrr-queue random-detect max-threshold  2 40 60

!--- This sets the threshold of queue 2 to 49 and 60% maximum threshold !--- configured on Gi1/1 Gi1/2.

尾部丢弃队列的配置：

cosmos(config)#interface fastethernet 3/1

cosmos(config-if)#wrr-queue threshold ?

<1-2> enter threshold queue id (1-2)

cosmos(config-if)#wrr-queue threshold 1 ?

<1-100>  enter percent of queue size between 1 and 100

cosmos(config-if)#wrr-queue threshold 1 50 100

!--- This sets the tail drop threshold for this 2q2t interface for !--- queue 1 (low-priority) to 50 and 100% of the buffer.

threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8

Fa3/9 Fa3/10 Fa3/11 Fa3/12

cosmos(config-if)#

cosmos(config-if)#

cosmos(config-if)#wrr-queue threshold 2 40 100

!--- This sets the tail drop threshold for this 2q2t interface for !--- queue 2 (high-priority) to 40 and 100% of the buffer.

threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8

Fa3/9 Fa3/10 Fa3/11 Fa3/12

cosmos(config-if)#

检查配置：

cosmos#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Port is untrusted

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:   20[queue 1]  80[queue 2]

queue-limit ratios:     70[queue 1]  15[queue 2]

queue random-detect-min-thresholds

-----------------------------

1    20[1] 50[2]

2    20[1] 50[2]

queue random-detect-max-thresholds

----------------------------------

1    50[1] 80[2]

2    40[1] 60[2]

cosmos#show queueing interface fastethernet 3/1

Interface FastEthernet3/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Port is untrusted

Default cos is 0

Transmit queues [type = 2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

WRR bandwidth ratios:  100[queue 1] 255[queue 2]

queue-limit ratios:     90[queue 1]  10[queue 2]

queue tail-drop-thresholds

--------------------------

1     50[1] 100[2]

2     40[1] 100[2]

您无法配置阈值并将CoS分配给每个端口的队列。所有的更改都应用到一组连续的端口

- 千兆线卡的四个端口 — 端口1至4共用，端口5至8共用。

- 根据1q4t/2q2t排队（1到12、13到24、25到36和36到48），10/100端口或100光纤端口的12个端口。

- 要确定属于同一ASIC的确切端口，请使用show interface capabilities命令。

监控输出调度并检验配置

要验证端口的当前运行时配置（与输出调度有关），最简单的命令是show queueing interface {gigabitethernet | fastethernet} slot/port命令。此命令显示端口上的队列类型、CoS到不同队列和阈值的映射、缓冲区共享和WRR权重。此处，队列1的WRR为20%，队列2的WRR为80%。该命令还显示输出调度的所有配置信息以及每个阈值在每个队列中丢弃的数据包数：

cosmos#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Port is untrusted

Default COS is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:   20[queue 1]  80[queue 2]

queue-limit ratios:     70[queue 1]  15[queue 2]

queue random-detect-max-thresholds

----------------------------------

1    50[1] 80[2]

2    40[1] 60[2]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

2     1      4 6

2     2      7

3     1      5

Receive queues [type = 1p1q4t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         Standard            4

2         Priority            1

queue tail-drop-thresholds

--------------------------

1     100[1] 100[2] 100[3] 100[4]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

1     3      4

1     4      6 7

2     1      5

Packets dropped on Transmit:

BPDU packets:  0

queue thresh    dropped  [cos-map]

---------------------------------------------------

1     1               0  [0 1 ]

1     2               0  [2 3 ]

2     1               0  [4 6 ]

2     2               0  [7 ]

3     1               0  [5 ]

Packets dropped on Receive:

BPDU packets:  0

queue thresh    dropped  [cos-map]

---------------------------------------------------

1     1               0  [0 1 ]

1     2               0  [2 3 ]

1     3               0  [4 ]

1     4               0  [6 7 ]

2     1               0  [5 ]

输出调度示例

此流量注入到Catalyst 6500/6000:

- 在千兆端口1/2：一千兆流量，优先值为零优先于0的1千兆流量

- 在千兆端口5/2：

- 133MB流量，优先级为7

- 133MB流量，优先于6

- 133MB流量，优先级为5

- 133MB流量，优先级为4

- 133MB流量，优先于三

- 133MB流量，优先于2

- 133MB流量，优先于1

每个端口千兆1/1的所有单播流量都会从交换机流出，这非常超订用。

第 1 种情况：QoS已启用，并且使用默认参数

在本例中，show queueing interface gigabitethernet 1/1命令配置所有输出。该命令提供有关输入调度的其他信息。但是，由于本文档仅涵盖输出调度，因此会抑制该输出。

当全局启用QoS且所有默认参数都在使用时，此输出将在几分钟后产生：

nelix#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Trust state: trust DSCP

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:  100[queue 1] 255[queue 2]

queue-limit ratios:     90[queue 1]   5[queue 2]

queue random-detect-max-thresholds

----------------------------------

1    40[1] 100[2]

2    40[1] 100[2]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

2     1      4

2     2      6 7

3     1      5

Packets dropped on Transmit:

BPDU packets:  0

queue thresh    dropped  [cos-map]

---------------------------------------------------

1     1       149606424  [0 1 ]

1     2               0  [2 3 ]

2     1        16551394  [4 ]

2     2         4254446  [6 7 ]

3     1               0  [5 ]

在此输出中，默认值为：

- 队列1 - 100的WRR权重/(100 + 255)= 28%

- 队列2 - 255的WRR权重/(255 + 100)= 72%

- 缓冲共享： — 队列1为90%，队列2为5%，严格优先级队列为5%

低优先级WRR队列中的大多数数据包被丢弃，但是对于这两个阈值，高优先级WRR队列中的一些数据包仍被丢弃。共有170,412,264个丢弃(149,606,424 + 16,551,394 + 4,254,446)。 这些丢包的拆分如下：

- 149,606,424 / 170,412,264 =队列1中丢弃的88%（第一个阈值数据包，带CoS 0和1）

- 16,551,394 / 170,412,264 =队列2中丢包的10%（第一个阈值数据包，带CoS 4）

- 4,254,446 / 170,412,264 =队列2中丢包的2%（CoS为6或7的第二个阈值数据包）

注意：在严格优先级队列中看不到任何丢包。

第 2 种情况：修改WRR权重

如案例1所述：QoS已启用且使用了默认参数部分，队列2中的数据包仍在被丢弃。修改WRR权重，为队列2提供更多带宽。现在，队列1的清空时间为4%，队列2的清空时间为96%:

show run interface gigabitethernet 1/1

interface GigabitEthernet1/1

no ip address

wrr-queue bandwidth 10 255

mls qos trust dscp

switchport

switchport mode access

end

nelix#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Trust state: trust DSCP

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:   10[queue 1] 255[queue 2]

queue-limit ratios:     90[queue 1]   5[queue 2]

queue random-detect-max-thresholds

----------------------------------

1    40[1] 100[2]

2    40[1] 100[2]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

2     1      4

2     2      6 7

3     1      5

Packets dropped on Transmit:

BPDU packets:  0

queue thresh    dropped  [cos-map]

---------------------------------------------------

1     1         2786205  [0 1 ]

1     2               0  [2 3 ]

2     1           11363  [4 ]

2     2              69  [6 7 ]

3     1               0  [5 ]

如此输出所示，队列2中丢包的百分比现在要低得多。总共2,797,637个丢包以这种方式分离：

- 2,786,205 / 2,797,637 =队列1中99.591%的丢包（包含CoS 0和1）

- 11,363 / 2,797,637 =队列2中0.408%的丢包（数据包CoS 4的第一个阈值）

- 69 / 2,797,637 =队列2中丢包的0.001%（CoS 6和7的数据包的第二阈值）

如果使用各种WRR权重，它可确保队列2中的QoS更高。

实例3：其它WRR加权修改我们可对WRR加权作出更大的修改。

使用WRR重量时，您可以更积极。在此示例输出中，队列1仅分配0.39%的权重：

show run interface gigabitethernet 1/1

interface GigabitEthernet1/1

no ip address

wrr-queue bandwidth 1 255

mls qos trust dscp

switchport

switchport mode access

end

nelix#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Trust state: trust DSCP

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:    1[queue 1] 255[queue 2]

queue-limit ratios:     90[queue 1]   5[queue 2]

queue random-detect-max-thresholds

----------------------------------

1    40[1] 100[2]

2    40[1] 100[2]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

2     1      4

2     2      6 7

3     1      5

Packets dropped on Transmit:

BPDU packets:  0

queue thresh    dropped  [cos-map]

---------------------------------------------------

1     1         2535315  [0 1 ]

1     2               0  [2 3 ]

2     1             705  [4 ]

2     2              73  [6 7 ]

3     1               0  [5 ]

即使WRR权重过大，数据包仍在队列2中被丢弃。但是，相比之下，它并不多。现在队列2中只有0.03%的丢包。

实例4：修改队列极限缓冲区分配修改队列限制缓冲区分配

如案例2所示：修改WRR权重和案例3:其他WRR权重修改部分，数据包仍在队列2中丢弃，尽管WRR百分比可确保丢弃最小。但是，当队列2中达到第二个阈值（设置为100%）时，某些数据包会继续丢弃。

为了改善此情况，请更改队列限制（分配给每个队列的缓冲区大小）。 在本例中，队列1的队列限制设置为70%，队列2的队列限制设置为15%，严格优先级队列的队列限制设置为15%:

show run gigabitethernet 1/1

interface GigabitEthernet1/1

no ip address

wrr-queue bandwidth 1 255

wrr-queue queue-limit 70 15

mls qos trust dscp

switchport

switchport mode access

end

nelix#show queueing interface gigabitethernet 1/1

Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin

Port QoS is enabled

Trust state: trust DSCP

Default cos is 0

Transmit queues [type = 1p2q2t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         WRR low             2

2         WRR high            2

3         Priority            1

WRR bandwidth ratios:    1[queue 1] 255[queue 2]

queue-limit ratios:     70[queue 1]  15[queue 2]

queue random-detect-max-thresholds

----------------------------------

1    40[1] 100[2]

2    40[1] 100[2]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

2     1      4

2     2      6 7

3     1      5

Receive queues [type = 1p1q4t]:

Queue Id    Scheduling  Num of thresholds

-----------------------------------------

1         Standard            4

2         Priority            1

queue tail-drop-thresholds

--------------------------

1     100[1] 100[2] 100[3] 100[4]

queue thresh cos-map

---------------------------------------

1     1      0 1

1     2      2 3

1     3      4

1     4      6 7

2     1      5

Packets dropped on Transmit:

BPDU packets:  0

queue thresh    dropped  [cos-map]

---------------------------------------------------

1     1       154253046  [0 1 ]

1     2               0  [2 3 ]

2     1               0  [4 ]

2     2               0  [6 7 ]

3     1               0  [5 ]

现在，丢弃仅发生在队列1中。

使用输出调度来减少延迟和抖动

输出调度示例部分的案例研究证明了实施输出调度以避免在输出端口超订用时VoIP或任务关键型流量丢弃的优点。超订用在正常网络（尤其是在千兆链路上）中不会非常频繁。 超订用只应在流量高峰期或在非常短的时间内突发流量期间发生。

即使没有超订用，在端到端实施QoS的网络中，输出调度也可以起到很大帮助。本节提供输出调度如何帮助减少延迟和抖动的示例。

减少延迟

数据包的延迟会因每台交换机等待传输时缓冲区中的“丢失”时间而增加。例如，在大型备份或文件传输期间，CoS为5的小语音数据包从端口发出。假设输出端口没有QoS，并且小语音数据包在10个大1500字节数据包之后排队。在这种情况下，您可以轻松计算传输10个大数据包所需的千兆速度时间为：

- (10 x 1500 x 8)= 120,000位在120微秒内传输

如果此数据包在通过网络时需要通过八台或九台交换机，则可能导致大约1毫秒的延迟。这仅包括网络中交叉的交换机输出队列中的延迟。

注意：如果您需要在10MB接口（例如，连接到IP电话和PC）上将相同的10个大数据包排入队列，则延迟引入为：

- (10 x 1500 x 8)=在12毫秒内传输120,000位

输出调度的实施确保CoS为5的语音数据包被置于严格优先级队列中，并在CoS小于5的任何数据包之前发送。这减少了延迟。

减少抖动

输出调度的另一个重要优势是减少抖动。抖动是同一流中数据包的延迟变化。此示例场景显示输出调度如何减少抖动：

在此场景中，同一输出端口需要发送两个流：

- 10MB以太网端口上的一个传入语音流。

- 1千兆以太网上行链路端口上的一个传入FTP流。

两个流通过相同的输出端口离开交换机。此示例显示不使用输出调度时可能发生的情况。所有大型数据包都可以在两个语音数据包之间交错。这会在从同一流接收语音数据包时产生抖动。当交换机传输大数据包时，数据包1的接收与数据包n+1之间的延迟较大。但是，n+1和n+2之间的延迟可忽略。这导致了语音业务流中的抖动。使用严格优先级队列可以轻松避免此问题。确保将语音数据包的CoS值映射到严格优先级队列。

结论

在本文档中，您已看到有关如何在运行Cisco IOS软件的Catalyst 6500/6000上配置输出队列调度并排除其故障的案例研究。您还看到，在大多数语音流量网络中，输出调度具有以下优势：

- 避免在输出端口超订用的情况下丢弃关键流量。

- 减少延迟。

- 减少抖动。

相关信息

- 运行 CatOS 系统软件的 Catalyst 6500/6000 系列交换机上的 QoS 输出调度

- 了解 Catalyst 6000 系列交换机的服务质量

- LAN 产品支持页

- LAN 交换技术支持页

- 技术支持和文档 - Cisco Systems