了解 CoS 调度行为和配置注意事项
许多因素会影响调度配置和带宽要求,包括:
-
为转发类(每个转发类映射到一个队列)或转发类集(优先级组)配置带宽时,交换机仅将数据视为配置的带宽。交换机不考虑前导码消耗的带宽和帧间间隔 (IFG)。因此,在计算和配置转发类或转发类集的带宽要求时,请考虑前导码和 IFG 以及计算中的数据。
-
将转发类配置为在交换机上传输流量(而不是仅使用默认转发类)时,还必须为用户配置的转发类定义调度策略。某些交换机支持增强型传输选择 (ETS) 分层端口调度,某些交换机支持端口调度,有些交换机支持这两种调度方法。
对于 ETS 分层端口调度,使用 ETS 定义分层调度策略意味着:
-
将调度程序映射到调度器图中的转发类
-
在转发类集中包括转发类
-
将调度程序图与流量控制配置文件关联
-
将流量控制配置文件附加到转发类集和接口
在支持端口调度的交换机上,定义调度策略意味着:
-
将调度程序映射到调度器图中的转发类。
-
将调度程序图应用于一个或多个接口。
-
-
在每个物理接口上,接口上使用的所有转发类都必须配置重写规则,或者接口上使用的任何转发类都不能配置重写规则。在任何物理端口上,请勿将具有重写规则的转发类和不带重写规则的转发类混合使用。
-
对于同时带有内部 VLAN 标记和外部 VLAN 标记的数据包,重写规则仅重写外部 VLAN 标记。
-
对于 ETS 分层端口调度,除非您还为流量控制配置文件中设置的转发类配置最小保证带宽 (),否则为转发类配置最小保证带宽 (
transmit-rate
guaranteed-rate
) 不起作用。此外,转发类集中转发类的传输速率总和不应超过转发类集的保证速率。(不能保证队列的最小带宽大于整个队列集保证的最小带宽。如果配置的传输速率总和超过转发类集的保证速率,则提交检查将失败,系统将拒绝配置。
-
对于 ETS 分层端口调度,转发类集保证速率的总和不能超过端口总带宽。如果配置的保证速率的总和超过端口带宽,系统将发送系统日志消息,通知您配置无效。但是,系统不执行提交检查。如果提交的配置保证速率之和超过端口带宽,则分层调度程序的行为不可预测。
-
对于 ETS 分层端口调度,如果将转发类集的配置为百分比,则将
guaranteed-rate
与该转发类集关联的所有传输速率配置为百分比。在这种情况下,如果将任何传输速率配置为绝对值而不是百分比,则配置无效,系统将发送系统日志消息。 -
如果要配置严格高优先级队列(转发类),需要考虑几个因素:
-
在 QFX5200 交换机上,您只能配置一个严格高优先级队列(转发类)。
在 QFX5100 和 EX4600 交换机上,您只能将一个转发类集(优先级组)配置为严格高优先级。然后,属于该严格高转发类集的所有队列都充当严格高队列。
在 QFX10000 交换机上,您可以配置的严格高优先级队列数量没有限制。
-
您无法为 QFX5200、QFX5100 EX4600 交换机上的严格高优先级队列配置最小保证带宽 (
transmit-rate
)。在 QFX5200 和 QFX10000 交换机上,您可以设置
transmit-rate
严格高优先级队列,以设置队列视为严格高优先级流量的流量限制。超出 的transmit-rate
流量被视为尽力而为流量,并接收超出带宽共享权重“1”,这是严格高优先级队列可以在端口上共享的额外带宽的比例。不是严格高优先级队列的队列使用传输速率(默认)或配置的超额速率来确定队列可以共享的额外端口带宽的比例(权重)。但是,您不能在严格高优先级队列上配置超额速率,也不能更改严格高优先级队列上超额带宽共享权重“1”。对于 ETS 分层端口调度,您无法为包含严格高优先级队列的转发类集配置最小保证带宽 (
guaranteed-rate
)。 -
除 QFX10000 交换机外,仅对于 ETS 分层端口调度,您必须为严格高优先级队列创建单独的转发类集。在 QFX10000 交换机上,您可以在同一转发类集中混合使用严格高优先级和低优先级队列。
-
除 QFX10000 交换机外,对于 ETS 分层端口调度,只有一个转发类集可以包含严格高优先级队列。在 QFX10000 交换机上,此限制不适用。
-
除 QFX10000 交换机外,对于 ETS 分层端口调度,严格高优先级队列不能与非严格高优先级队列属于同一转发类集。(不能在一个转发类集中混合使用严格高优先级转发类和非严格高优先级转发类。)在 QFX10000 交换机上,您可以在同一转发类集中混合使用严格高优先级和低优先级队列。
-
对于对单播和多目标(组播、广播和目标查找失败)流量使用不同转发类集的交换机上的 ETS 分层端口调度,严格高优先级队列不能属于多目标转发类集。
-
在QFX10000系统上,我们建议您始终在严格高优先级队列上配置传输速率,以防止它们使其他队列资源不足。如果不应用传输速率来限制严格高优先级队列可以使用的带宽量,则严格高优先级队列可能会使用所有可用端口带宽,并使端口上的其他队列资源不足。
在 QFX5200 QFX5100 EX4600 交换机上,我们建议您始终对严格高优先级队列应用整形速率,以防止其耗尽其他队列。如果不应用整形速率来限制严格高优先级队列可以使用的带宽量,则严格高优先级队列可能会使用所有可用端口带宽,并耗尽端口上的其他队列。
-
-
对于低于 1 Gbps 的传输速率,我们建议您将传输速率配置为百分比而不是固定速率。这是因为系统会将固定费率转换为百分比,并且可能会将较小的固定费率四舍五入为较低的百分比。例如,350 Mbps 的固定速率向下舍入为 3%,而不是 3.5%。
-
将队列或优先级组 (
shaping-rate
) 的最大带宽设置为 100 Kbps 或更低时,流量整形行为仅在已配置shaping-rate
带宽的 +/– 20% 以内准确。 -
在 QFX10000 交换机上,使用 ] 语句在
[edit class-of-service interfaces lag-interface-name scheduler-map scheduler-map-name
LAG 接口上配置速率整形 ([set class-of-service schedulers scheduler-name transmit-rate (rate | percentage) exact
) 可能会导致计划流量流接收的 LAG 链路带宽超出预期。您可以在调度程序中配置速率整形,以设置分配给端口上特定输出队列上的转发类的流量的最大带宽。例如,您可以使用调度程序对分配给映射到队列 0 的尽力而为转发类的流量配置速率整形,然后使用调度程序图将调度程序应用于接口,以便为映射到该端口上队列 0 的最佳尽力信息流设置最大带宽。尽力转发中的流量使用量不能超过使用该
exact
选项时传输速率指定的端口带宽量。LAG 接口由捆绑在一起的两个或多个以太网链路组成,用作单个接口。交换机可以将进入 LAG 接口的流量散列到 LAG 接口中的任何成员链路上。配置速率整形并将其应用于 LAG 接口时,交换机将速率整形应用于流量的方式取决于交换机如何将流量散列到 LAG 链路上。
为了说明链路散列如何影响交换机将整形速率应用于 LAG 流量的方式,让我们看一下具有两个成员链路 (
xe-0/0/20
和xe-0/0/21
) 的 LAG 接口 (ae0
)。在 LAGae0
上,我们为分配给best-effort
转发类的流量配置速率整形2g
,转发类映射到输出队列0
。当转发类中的best-effort
流量到达 LAG 接口时,交换机会将流量散列到两个成员链路之一上。如果交换机将所有流量散列
best-effort
到同一 LAG 链路上,则流量在该链路上最多接收 2g 带宽。在这种情况下,将强制执行 LAG 上尽力而为流量的预期累积限制 2g。但是,如果交换机将流量散
best-effort
列到两个 LAG 链路上,则流量 在每个 LAG 链路上最多接收 2g 带宽,而不是整个 LAG 的累积总带宽 2g,因此尽力流量在 LAG 上最多接收 4g,而不是速率整形配置设置的 2g。当散列将分配给输出队列(映射到转发类)的流量分布到多个 LAG 链路时,LAG 上的有效速率整形(累积最大带宽)为:(LAG 成员接口数量)x(输出队列的速率整形)= 累积 LAG 速率整形
-
在不使用虚拟输出队列 (VOQ) 的交换机上,如果一个入口端口将流量转发到多个出口端口,并且其中至少有一个出口端口出现拥塞,则在出口端口拥塞期间可能会出现入口端口拥塞。如果发生这种情况,拥塞的出口端口可能会导致入口端口超出其入口缓冲区资源的公平分配。当入口端口超过其缓冲区资源分配时,将在入口处丢弃帧。入口端口帧丢弃不仅会影响拥塞的出口端口,还会影响拥塞的入口端口转发流量的所有出口端口。
如果拥塞的入口端口丢弃发往一个或多个非拥塞出口端口的流量,请配置加权随机早期检测 (WRED) 丢弃配置文件,并将其应用于导致拥塞的出口队列。丢弃配置文件通过在出口处丢弃帧来防止拥塞的出口队列影响其他端口上的出口队列。
注意:在支持无损传输的系统上,不要为无损转发类(如默认
fcoe
和no-loss
转发类)配置丢弃配置文件。FCoE 和其他无损流量队列需要无损行为。使用基于优先级的流控制 (PFC) 来防止无损优先级上的丢帧。 -
在对单播和多目标流量使用不同分类器并支持无损传输的系统上,在入口端口上,请勿配置将同一 IEEE 802.1p 代码点映射到多目标流量和无损单播流量流(如默认无损
fcoe
no-loss
或转发类)的分类器。不应用于端口上多目标流量的任何代码点都不应用于将单播流量分类为同一端口上的无损转发类。如果多目标流量和无损单播流量在端口上使用相同的代码点,则多目标流量的处理方式与无损流量相同。例如,如果将基于优先级的流量控制 (PFC) 应用于无损流量,则同一代码点的多目标流量也会暂停。在拥塞期间,将多目标流量视为无损单播流量可能会造成多目标流量的入口端口拥塞,并影响多目标流量使用的所有出口端口上的多目标流量。
例如,以下配置可能会导致多目标流的入口端口拥塞:
对于单播流量,IEEE 802.1p 代码点 011 分为
fcoe
转发类:user@switch# set class-of-service classifiers ieee-802.1 ucast_cl forwarding-class fcoe loss-priority low code-points 011
对于多目标流量,IEEE 802.1p 代码点
011
分为mcast
转发类:user@switch# set class-of-service classifiers ieee-802.1 mcast-cl forwarding-class mcast loss-priority low code-points 011
将带有代码点
011
的流量映射到转发类的fcoe
单播分类器映射到接口xe-0/0/1
:user@switch# set class-of-service interfaces xe-0/0/1 unit 0 classifiers ieee-802.1 ucast_cl
将带有代码点
011
的流量映射到转发类的mcast
多目标分类器映射到所有接口(多目标流量映射到所有接口,不能映射到单个接口):user@switch# set class-of-service multi-destination classifiers ieee-802.1 mcast-cl
由于同一代码点 (
011
) 将单播流量映射到无损流量流,并将多目标流量映射到多目标流量流,因此多目标流量在拥塞期间可能会遇到入口端口拥塞。
为避免入口端口拥塞,请勿将多目标流量使用的代码点映射到无损单播流量。例如:
与其将代码点
011
分类为fcoe
转发类,不如将代码点011
分类为best-effort
转发类:user@switch# set class-of-service classifiers ieee-802.1 ucast_cl forwarding-class best-effort loss-priority low code-points 011
-
user@switch# set class-of-service classifiers ieee-802.1 mcast-cl forwarding-class mcast loss-priority low code-points 011
-
user@switch# set class-of-service interfaces xe-0/0/1 unit 0 classifiers ieee-802.1 ucast_cl
-
user@switch# set class-of-service multi-destination classifiers ieee-802.1 mcast-cl
由于代码点
011
不会将单播流量映射到无损流量流,因此多目标流量在拥塞期间不会遇到入口端口拥塞。
最佳做法是将具有 IEEE 802.1p 代码点的单播流量(也用于多目标流量)分类为尽力而为转发类。