目录

简介

先决条件

要求

使用的组件

规则

背景信息

输出队列丢弃

在Catalyst 6500/6000上进行输出调度时涉及的队列类型

尾部丢弃

随机前期检测和加权随机前期检测

加权轮询

严格优先级队列

Catalyst 6000上不同线卡的输出队列功能

show port 命令功能

了解端口的排队功能

在Catalyst 6500/6000上创建QoS

Catalyst 6500/6000上的输出调度机制

在Catalyst 6500/6000上配置、监控和输出调度

Catalyst 6500/6000上QoS的默认配置

配置

监控输出调度并验证配置

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

减少延迟

减少抖动

相关信息

简介

输出调度可确保在严重超订用的情况下不会丢弃重要流量。本文档讨论在运行Catalyst OS(CatOS)系统软件的Cisco Catalyst 6500/6000系列交换机上输出调度涉及的所有技术和算法。本文档还简要概述了Catalyst 6500/6000交换机的排队功能以及如何配置输出调度的不同参数。

注意：如果在Catalyst 6500/6000上运行Cisco IOS®软件，请参阅运行Cisco IOS系统软件的Catalyst 6500/6000系列交换机上的QoS输出调度以了解详细信息。

先决条件

要求

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

使用的组件

本文档中的示例是从Catalyst 6000(带Supervisor引擎1A和策略功能卡(PFC))创建的。 但是，这些示例对带PFC2的Supervisor引擎2或带PFC3的Supervisor引擎720也有效。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

规则

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

背景信息

输出队列丢弃

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

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

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

在Catalyst 6500/6000上进行输出调度时涉及的队列类型

尾部丢弃

尾部丢弃是基本的拥塞避免机制。尾部丢弃对所有流量均等处理，当队列在拥塞期间开始填满时，不区分服务类别(CoS)。当输出队列已满且尾部丢弃有效时，数据包将被丢弃，直到拥塞消除和队列不再满为止。尾部丢弃是避免拥塞的最基本类型，不考虑任何QoS参数。

Catalyst 6000已实施高级版尾部丢弃拥塞避免，当达到一定百分比的缓冲区填充时，会丢弃具有特定CoS的所有数据包。使用加权尾部丢弃，可以定义一组阈值并将CoS与每个阈值关联。在本节的示例中，有四个可能的阈值。每个阈值的定义如下：

- 当50%的缓冲区被填充时，阈值1达到。CoS 0和1分配给此阈值。

- 当60%的缓冲区被填充时，阈值2达到。CoS 2和3被分配到此阈值。

- 当80%的缓冲区被填充时，阈值3达到。CoS 4和5已分配到此阈值。

- 当100%的缓冲区被填充时，达到阈值4。CoS 6和7分配到此阈值。

在图1中的图中，如果缓冲区已满50%，则CoS为0或1的所有数据包都会被丢弃。如果缓冲区已满60%，则CoS为0、1、2或3的所有数据包都将被丢弃。当缓冲区完全填充时，CoS为6或7的数据包将被丢弃。

图 1

注意：一旦缓冲区填充量降低到某个阈值以下，具有关联CoS的数据包就不再被丢弃。

随机前期检测和加权随机前期检测

加权随机早期检测(WRED)是一种拥塞避免机制，当缓冲区达到定义的填充阈值时，它会随机丢弃具有特定IP优先级的数据包。WRED是以下两个功能的组合：

- 尾部丢弃

- 随机早期检测 (RED)

RED不感知优先级或CoS感知。当缓冲区的阈值已满时，RED使用单个阈值之一。RED开始随机丢弃数据包（但不是所有数据包，如尾部丢弃），直到达到最大（最大）阈值。达到最大阈值后，所有数据包都会被丢弃。数据包被丢弃的概率随着缓冲区填充量的增加而线性增加。图2中的图表显示了丢包概率：

图2 — 数据包丢弃概率

注意：此图中的标记概率以红色可调，这意味着线性丢包概率的斜率是可调的。

RED和WRED是基于TCP的流量的非常有用的拥塞避免机制。对于其他类型的流量，RED效率不高。这是因为RED利用TCP用于管理拥塞的窗口机制。RED可避免当多个TCP会话通过同一路由器端口时路由器上出现的典型拥塞。该机制称为全局网络同步。图3中的图表显示了RED对负载的平滑效果：

图3 - RED用于避免拥塞

有关RED如何减少拥塞并平滑通过路由器的流量的详细信息，请参阅拥塞避免概述文档的路由器与TCP交互方式。

WRED类似于RED，因为它们都定义了一些最小(min)阈值，当达到这些最小阈值时，数据包会随机丢弃。WRED还定义了某些最大阈值，当达到这些最大阈值时，所有数据包都会被丢弃。WRED也是CoS感知，这意味着将一个或多个CoS值添加到每个最小阈值/最大阈值对。当超出最小阈值时，数据包随分配的CoS随机丢弃。请考虑以下示例，队列中有两个阈值：

- 将CoS 0和1分配给最小阈值1和最大阈值1。最小阈值1设置为缓冲区填充的50%，最大阈值1设置为80%。

- 将CoS 2和3分配给最小阈值2和最大阈值2。最小阈值2设置为缓冲区填充的70%，最大阈值2设置为100%。

一旦缓冲区超过最小阈值1(50%),CoS 0和1的数据包就会开始随机丢弃。随着缓冲区利用率的增加，会丢弃更多数据包。如果达到最小阈值2(70%)，则CoS 2和CoS 3的数据包开始随机丢弃。

注意：在此阶段，CoS 0和1的数据包的丢弃概率远高于CoS 2或CoS 3的数据包的丢弃概率。

每当达到最大阈值2时，CoS 0和1的数据包都会被丢弃，而CoS 2和3的数据包会继续随机丢弃。最后，当达到100%（最大阈值2）时，CoS 2和3的所有数据包都会被丢弃。

图4和图5中的图示了这些阈值的示例：

图4 - WRED，带两组最小阈值和最大阈值（两项服务）

图5 - WRED，带两组服务，但最小阈值均等于0

WRED的早期CatOS实现只设置最大阈值，而最小阈值硬编码为0%。图5中图的底部突出显示了结果行为。

注意：数据包的丢弃概率始终为非空，因为此概率始终高于最小阈值。此行为已在软件版本6.2及更高版本中得到纠正。

加权轮询

加权轮询(WRR)是Catalyst 6000上另一种输出调度机制。WRR在两个或多个队列之间工作。WRR的队列以循环方式清空，您可以配置每个队列的权重。默认情况下，端口在Catalyst 6000上有两个WRR队列。默认值为：

- 为高优先级WRR队列服务70%的时间

- 为低优先级WRR队列提供30%的时间

图6中的图表显示了一个WRR，该WRR有三个以WRR方式提供服务的队列。高优先级队列（红色数据包）发送的数据包比另外两个队列发送的数据包多：

图6 — 输出调度：WRR

注意：大多数6500线卡确实按带宽实施WRR。WRR每带宽的这种实施意味着，每当调度程序允许队列传输数据包时，都允许传输一定数量的字节。此字节数可代表多个数据包。例如，如果依次发送5120字节，则可以发送3个1518字节的数据包，总共4554字节。超额字节丢失（5120 - 4554 = 566字节）。 因此，对于某些极大权重（如队列1的1%和队列2的99%），可能无法达到精确配置的权重。这种无法达到确切权重的情况通常是数据包较大的情况。

一些新一代线卡（如6548-RJ-45）通过实施赤字加权轮询(DWRR)来克服这一限制。DWRR从队列传输，但不会使低优先级队列饿死。DWRR跟踪正在传输的低优先级队列，并在下一轮中进行补偿。

严格优先级队列

Catalyst 6000中的另一种队列（严格优先级队列）始终先清空。一旦在严格优先级队列中有数据包，就会发送该数据包。

WRR或WRED队列仅在清空严格优先级队列后被检查。从WRR队列或WRED队列传输每个数据包后，会检查并清空严格优先级队列（如果需要）。

注意：所有排队类型类似于1p2q1t、1p3q8t和1p7q8t的线卡都使用DWRR。其他线卡使用标准WRR。

Catalyst 6000上不同线卡的输出队列功能

show port 命令功能

如果您不确定端口的排队功能，可以发出show port capabilities命令。以下是WS-X6408-GBIC线卡上的命令输出：

Model                  WS-X6408-GBIC

Port                   4/1

Type                   No GBIC

Speed                  1000

Duplex                 full

Trunk encap type       802.1Q,ISL

Trunk mode             on,off,desirable,auto,nonegotiate

Channe                 yes

Broadcast suppression  percentage(0-100)

Flow control           receive-(off,on,desired),send-(off,on,desired)

Security               yes

MembershIP             static,dynamic

Fast start             yes

QOS scheduling         rx-(1q4t),tx-(2q2t)

CoS rewrite            yes

ToS rewrite            DSCP

UDLD                   yes

SPAN                   source,destination

COPS port group        none

此端口具有一种称为2q2t的队列输出。

了解端口的排队功能

Catalyst 6500/6000交换机上提供多种类型的队列。此部分中的表可能会随着新线路卡的发布而不完整。新线卡可以引入新的队列组合。有关Catalyst 6500/6000交换机模块可用的所有队列的当前说明，请参阅Catalyst 6500系列软件文档的CatOS版本的配置QoS部分。

注意：思科通信媒体模块(CMM)不支持所有QoS功能。检查特定软件版本的版本说明以确定支持的功能。

下表说明了端口QoS架构的表示法：

Tx^1 /Rx^2 ide

队列表示法

队列数量

优先级队列

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

—

1

4个可配置尾部丢弃

Rx

1p1q4t

2

1

1

4个可配置尾部丢弃

Rx

1p1q0t

2

1

1

不可配置

Rx

1p1q8t

2

1

1

8个可配置WRED

1 Tx =传输。

2 Rx =接收。

下表列出了接口或端口的Rx和Tx端的所有模块和队列类型：

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上创建QoS

Catalyst 6500/6000上的三个字段用于实现QoS:

- IP优先级 — IP报头中服务类型(ToS)字段的前三位

- 差分服务代码点(DSCP)- IP报头中ToS字段的前六位

- CoS — 第2层(L2)级别使用的三位

这三个位是交换机间链路(ISL)报头的一部分，或位于IEEE 802.1Q(dot1q)标记内。无标记以太网数据包内没有CoS。

Catalyst 6500/6000上的输出调度机制

当从要传输的数据总线发送帧时，数据包的CoS是唯一考虑的参数。然后，数据包会通过调度程序，调度程序将选择将数据包放入的队列。因此，请记住，本文档讨论的输出调度和所有机制都只是CoS感知。

带有多层交换功能卡(MSFC)的Catalyst 6500/6000使用内部DSCP对数据包进行分类。当在PFC级别做出转发决策时，配置了启用QoS的Catalyst 6500/6000会分配DSCP值。此DSCP分配给任何数据包（包括非IP数据包），并映射到CoS以启用输出调度。您可以在Catalyst 6500/6000上配置从DSCP到CoS值的映射。如果保留默认值，则可以从DSCP派生CoS。其公式为：

DSCP_value / 8

此外，如果数据包是ISL或dot1q（非本征VLAN）标记的IP数据包，则DSCP值会映射到传出数据包的CoS。DSCP值也写在IP报头的ToS字段中。

图7中的图示为1p2q2t队列。使用WRR调度程序清空WRR队列。还有一个仲裁器，用于检查来自WRR队列的每个数据包，以确定严格优先级队列中是否存在某些内容。

图 7

1. ToS字段在IP报头和802.1p/ISL CoS字段中重写。

2. 通过可配置映射基于CoS选择调度队列和阈值。

3. 每个队列都有可配置的大小和阈值，有些队列有WRED。

4. 出队在两个队列之间使用WRR。

5. 传出封装可以是dot1q、ISL或无。

在Catalyst 6500/6000上配置、监控和输出调度

Catalyst 6500/6000上QoS的默认配置

本节提供Catalyst 6500/6000上默认QoS配置的示例输出，以及这些值的含义和如何调整这些值的信息。

当您发出以下命令时，QoS将默认禁用：

set qos disable

此列表中的命令显示2q2t端口中每个CoS的默认分配。队列1将CoS 0和1分配给其第一阈值，将CoS 2和3分配给其第二阈值。队列2将CoS 4和5分配给其第一个阈值，将CoS 6和7分配给其第二个阈值：

set qos map 2q2t tx 1 1 cos 0

set qos map 2q2t tx 1 1 cos 1

set qos map 2q2t tx 1 2 cos 2

set qos map 2q2t tx 1 2 cos 3

set qos map 2q2t tx 2 1 cos 4

set qos map 2q2t tx 2 1 cos 5

set qos map 2q2t tx 2 2 cos 6

set qos map 2q2t tx 2 2 cos 7

以下命令默认显示每个队列的2q2t端口上的阈值级别：

set qos drop-threshold 2q2t tx queue 1 80 100

set qos drop-threshold 2q2t tx queue 2 80 100

您可以为每个WRR队列分配默认权重。发出以下命令以分配队列1和队列2的默认权重：

注：低优先级队列的服务时间是5/260%，高优先级队列的服务时间是25/260%。

set qos wrr 2q2t 5 255

总缓冲区可用性在两个队列之间拆分。低优先级队列正确分配给80%的可用缓冲区，因为这是最有可能缓冲数据包并保持一段时间的队列。发出以下命令以定义可用性：

set qos txq-ratio 2q2t 80 20

您可以在此配置中查看1p2q2t端口的类似设置：

set qos map 1p2q2t tx 1 1 cos 0

set qos map 1p2q2t tx 1 1 cos 1

set qos map 1p2q2t tx 1 2 cos 2

set qos map 1p2q2t tx 1 2 cos 3

set qos map 1p2q2t tx 2 1 cos 4

set qos map 1p2q2t tx 3 1 cos 5

set qos map 1p2q2t tx 2 1 cos 6

set qos map 1p2q2t tx 2 2 cos 7

set qos wrr 1p2q2t 5 255

set qos txq-ratio 1p2q2t 70 15 15

set qos wred 1p2q2t tx queue 1 80 100

set qos wred 1p2q2t tx queue 2 80 100

注意：默认情况下，CoS 5（语音流量）分配给严格优先级队列。

配置

第一个配置步骤是启用QoS。请记住，QoS默认值禁用。禁用QoS时，CoS映射无关。有一个队列用作FIFO，所有数据包都在该队列中丢弃。

bratan> (enable) set qos enable

QoS is enabled

bratan> (enable) show qos status

QoS is enabled on this switch

CoS值需要分配给所有队列类型的队列或阈值。为2q2t类型的端口定义的映射不应用于任何1p2q2t端口。此外，为2q2t创建的映射将应用于具有2q2t排队机制的所有端口。发出以下命令：

set qos map queue_type tx Q_number threshold_number cos value

注：队列总是进行编号，以尽可能最低的优先级队列开始，以可用的严格优先级队列结束。示例如下：

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

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

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

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

配置

set qos map 1p2q2t tx 1 1 cos 0

!--- This is the low-priority WRR queue threshold 1, CoS 0 and 1.

set qos map 1p2q2t tx 1 1 cos 1 and 1

set qos map 1p2q2t tx 1 2 cos 2

!--- This is the low-priority WRR queue threshold 2, CoS 2 and 3.

set qos map 1p2q2t tx 1 2 cos 3 and 3

set qos map 1p2q2t tx 2 1 cos 4

!--- This is the high-priority WRR queue threshold 1, CoS 4.

set qos map 1p2q2t tx 3 1 cos 5

!--- This is the strict priority queue, CoS 5.

set qos map 1p2q2t tx 2 1 cos 6

!--- This is the high-priority WRR queue threshold 2, CoS 6.

set qos map 1p2q2t tx 2 2 cos 7 and 7

控制台输出

tamer (enable) set qos map 1p2q2t tx 1 1 cos 0

QoS tx priority queue and threshold mapped to cos successfully

您必须为两个WRR队列配置WRR权重。发出以下命令：

set qos wrr Q_type weight_1 weight_2

Weight_1与队列1相关，队列1应是低优先级WRR队列。Weight_1必须始终低于weight_2。权重可以采用介于1和255之间的任意值。您可以使用以下公式分配百分比：

- 队列 1:

weight_1 / (weight_1 + weight_2)

- 队列 2:

weight_2 / (weight_1 + weight_2)

您还必须定义各种类型的队列的权重。重量不必相同。例如，对于2q2t，其中队列1的服务时间为30%，队列2的服务时间为70%，您可以发出以下命令以定义权重：

set qos wrr 2q2t 30 70

!--- This ensures that the high-priority WRR queue is served 70 percent of the time !--- and that the low-priority WRR queue is served 30 percent of the time.

控制台输出

tamer (enable) set qos wrr 2q2t 30 70

QoS wrr ratio is set successfully

您还必须定义传输队列比率，该比率是指缓冲区在不同队列之间拆分的方式。发出以下命令：

set qos txq-ratio port_type queuel_val queue2_val ... queueN_val

注意：如果您有三个队列(1p2q2t)，则必须出于硬件原因将高优先级WRR队列和严格优先级队列设置在同一级别。

配置

set qos txq-ratio 1p2q2t 70 15 15

!--- This gives 70 percent of the buffer of all 1p2q2t ports to the low-priority WRR !--- queue and gives 15 percent to each of the other two queues.

set qos txq-ratio 2q2t 80 20

!--- This gives 80 percent of the buffer to the low-priority queue, !--- and gives 20 percent of the buffer to the high-priority queue.

控制台输出

tamer (enable) set qos txq-ratio 1p2q2t 70 15 20

Queue ratio values must be in range of 1-99 and add up to 100

Example: set qos txq-ratio 2q2t 20 80

tamer (enable) set qos txq-ratio 1p2q2t 70 30 30

Queue ratio values must be in range of 1-99 and add up to 100

Example: set qos txq-ratio 2q2t 20 80

tamer (enable) set qos txq-ratio 1p2q2t 80 10 10

QoS txq-ratio is set successfully

如此控制台输出所示，队列值之和必须为100。请保留低优先级WRR队列缓冲区的最大部分，因为此队列需要的缓冲最多。其他队列的优先级更高。

最后一步是对WRED队列或者尾端丢弃队列配置阈值级别。发出以下命令：

set qos wred port_type [tx] queue q_num thr1 thr2 ... thrn

set qos drop-threshold port_type tx queue q_num thr1 ... thr2

配置

set qos drop-threshold 2q2t tx queue 1 50 80

!--- For low-priority queues in the 2q2t port, the first threshold is defined at 50 !--- percent and the second threshold is defined at 80 percent of buffer filling.

set qos drop-threshold 2q2t tx queue 2 40 80

!--- For high-priority queues in the 2q2t port, the first threshold is defined at 40 !--- percent and the second threshold is defined at 80 percent of buffer filling.

set qos wred 1p2q2t tx queue 1 50 90

!--- The commands for the 1p2q2t port are identical.

set qos wred 1p2q2t tx queue 2 40 80

控制台输出

tamer (enable) set qos drop-threshold 2q2t tx queue 1 50 80

Transmit drop thresholds for queue 1 set at 50% 80%

tamer (enable) set qos drop-threshold 2q2t tx queue 2 40 80

Transmit drop thresholds for queue 2 set at 40% 80%

tamer (enable) set qos wred 1p2q2t tx queue 1 50 90

WRED thresholds for queue 1 set to 50 and 90 on all WRED-capable 1p2q2t ports

tamer (enable) set qos wred 1p2q2t tx queue 2 40 80

WRED thresholds for queue 2 set to 40 and 80 on all WRED-capable 1p2q2t ports

set qos wred 1p2q2t tx queue 2 40 80命令与CoS配合使用，用于阈值映射。例如，当您发出下面列表中的命令时，您确保在传输方向的1p2q2t端口上，CoS 0、1、2和3的数据包在第一个队列（低WRR队列）中发送。 当队列中的缓冲区已满50%时，WRED开始丢弃CoS 0和1的数据包。只有队列中的缓冲区已满90%时，CoS 2和3的数据包才会被丢弃。

set qos map 1p2q2t tx 1 1 cos 0

set qos map 1p2q2t tx 1 1 cos 1

set qos map 1p2q2t tx 1 2 cos 2

set qos map 1p2q2t tx 1 2 cos 3

set qos wred 1p2q2t tx queue 1 50 90

监控输出调度并验证配置

用于验证端口输出调度的当前运行时配置的简单命令是show qos info runtime mod/port命令。命令显示以下信息：

- 端口上的队列类型

- CoS到不同队列和阈值的映射

- 缓冲区共享

- WRR重量

在本例中，队列1的值为20% WRR，队列2的值为80% WRR:

tamer (enable) show qos info runtime 1/1

Run time setting of QoS:

QoS is enabled

Policy Source of port 1/1: Local

Tx port type of port 1/1 : 1p2q2t

Rx port type of port 1/1 : 1p1q4t

Interface type: port-based

ACL attached:

The qos trust type is set to untrusted

Default CoS = 0

Queue and Threshold Mapping for 1p2q2t (tx):

Queue   Threshold     CoS

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

1          1           0 1

1          2           2 3

2          1           4 6

2          2           7

3          1           5

Queue and Threshold Mapping for 1p1q4t (rx):

All packets are mapped to a single queue

Rx drop thresholds:

Rx drop thresholds are disabled

Tx drop thresholds:

Tx drop-thresholds feature is not supported for this port type

Tx WRED thresholds:

Queue #        Thresholds - percentage (* abs values)

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

1             80% (249088 bytes) 100% (311168 bytes)

2             80% (52480 bytes) 100% (61440 bytes)

Queue Sizes:

Queue #       Sizes - percentage (* abs values)

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

1                70% (311296 bytes)

2                15% (65536 bytes)

3                15% (65536 bytes)

WRR Configuration of ports with speed 1000Mbps:

Queue #       Ratios (* abs values)

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

1                20 (5120 bytes)

2                80 (20480 bytes)

(*) Runtime information may differ from user configured setting

due to hardware granularity.

tamer (enable)

在下一个示例中，请注意，WRR权重不是默认值1。对于队列1，权重设置为20，对于队列2，权重设置为80。此示例使用流量生成器将2 Gb的流量发送到Catalyst 6000。这些2 Gb的流量应通过端口1/1退出。由于端口1/1超订用，因此许多数据包被丢弃(1 Gbps)。 show mac命令显示存在大量输出丢弃：

tamer (enable) show mac 1/1

Port            Rcv-Unicast            Rcv-Multicast           Rcv-Broadcast

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

1/1                  0                     1239                     0

Port             Xmit-Unicast             Xmit-Multicast        Xmit-Broadcast

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

1/1             73193601                     421                     0

Port            Rcv-Octet                 Xmit-Octet

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

1/1              761993                  100650803690

MAC          Dely-Exced         MTU-Exced         In-Discard         Out-Discard

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

1/1              0                 -                  0              120065264

Last-Time-Cleared

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

Fri Jan 12 2001, 17:37:43

考虑丢弃的数据包。建议的流量模式如下分割：

- 1 Gb流量，IP优先级为0

- 250 Mb流量，IP优先级4

- 250 Mb流量，IP优先级为5

- 250 Mb的流量，IP优先级6

- 250 Mb流量，IP优先级为7

根据CoS映射，此流量发送：

- 1 Gb流量进入队列1阈值1

- 0 Mb流量到队列1阈值2

- 500 Mb流量到队列2阈值1

- 250 Mb流量到队列2阈值2

- 队列3的流量为250 Mb（严格优先级队列）

交换机必须信任收到的流量，以便在交换机中保留传入的IP优先级，并用于映射到CoS值以进行输出调度。

注意：到CoS映射的默认IP优先级是IP优先级等于CoS。

发出show qos stat 1/1命令，以查看丢弃的数据包和大致百分比：

- 此时，队列3(CoS 5)中没有丢弃任何数据包。

- 丢弃的91.85%数据包是队列1中的CoS 0数据包。

- 8%的丢弃数据包是队列2中的CoS 4和6，阈值1。

- 丢弃的数据包中0.15%是队列2中的CoS 7，阈值2。

此输出说明了命令的使用：

tamer (enable) show qos stat 1/1

Tx port type of port 1/1 : 1p2q2t

Q3T1 statistics are covered by Q2T2.

Q #       Threshold #:Packets dropped

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

1         1:110249298 pkts, 2:0 pkts

2         1:9752805 pkts, 2:297134 pkts

3         1:0 pkts

Rx port type of port 1/1 : 1p1q4t

Rx drop threshold counters are disabled for untrusted ports

Q #       Threshold #:Packets dropped

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

1         1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts

2         1:0 pkts

如果在清除计数器后将WRR权重改回默认值，则只有1%的丢弃数据包发生在队列2中，而不是之前显示的8%:

注意：队列1的默认值为5，队列2的默认值为255。

tamer (enable) show qos stat 1/1

TX port type of port 1/1 : 1p2q2t

Q3T1 statistics are covered by Q2T2

Q #               Threshold #:Packets dropped

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

1                 1:2733942 pkts, 2:0 pkts

2                 1:28890 pkts, 2:6503 pkts

3                 1:0 pkts

Rx port type of port 1/1 : 1p1q4t

Rx drop threshold counters are disabled for untrusted ports

Q #               Threshold #:Packets dropped

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

1                  1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts

2                  1:0 pkts

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

监控输出调度和验证配置一节中的示例演示了输出调度实施的优点，它避免了在输出端口超订用的情况下VoIP或任务关键型流量的丢弃。超订用在正常网络中不常发生，尤其是在千兆链路上。通常，超订用仅在流量高峰期或流量在极短时间内突发期间发生。

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

减少延迟

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

(10 × 1500 × 8) = 120,000 bits that are transmitted in 120 microseconds

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

注意：如果需要在10-Mbps接口（例如，在连接IP电话和PC的情况下）上对相同的10个大数据包排队，则引入的延迟为：

(10 × 1500 × 8) = 120,000 bits that are transmitted in 12 ms

输出调度实现确保CoS为5的语音数据包被放入严格优先级队列。这种放置可确保这些数据包在CoS小于5的任何数据包之前发送，从而减少延迟。

减少抖动

输出调度实施的另一个重要优势是它减少了抖动。抖动是在同一流中观察到的数据包的延迟变化。图8中的图表显示了输出调度如何减少抖动的示例场景：

图 8

在此场景中，单个输出端口必须发送两个流：

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

- 在1 Gbps以太网上行链路上传入的一个FTP流

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

相关信息

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

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

- LAN 产品支持页

- LAN 交换技术支持页

- 技术支持和文档 - Cisco Systems