示例:配置队列调度程序
调度程序定义输出队列的 CoS 属性(输出队列映射到转发类,分类器根据 IEEE 802.1p 或 DSCP 代码点将流量映射到转发类)。队列调度与优先级组调度配合使用,以创建两层分层调度器。CoS 调度属性包括分配给队列的接口带宽量、队列的优先级、队列上是否启用了显式拥塞通知 (ECN) 以及与队列关联的 WRED 数据包丢弃配置文件。
配置 CoS 调度器
CLI 快速配置
要快速配置队列调度器,请复制以下命令,将其粘贴到文本文件中,移除换行符,更改变量和详细信息以匹配您的网络配置,然后将命令复制粘贴到 [edit] 层次结构级别的 CLI 中:
[edit class-of-service] set schedulers be-sched transmit-rate percent 20 set schedulers be-sched shaping-rate percent 40 set schedulers be-sched buffer-size percent 20 set schedulers be-sched priority low set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp set scheduler-maps be-map forwarding-class best-effort scheduler be-sched set traffic-control-profiles be-tcp scheduler-map be-map set interfaces xe-0/0/7 forwarding-class-set lan-pg output-traffic-control-profile be-tcp
分步程序
要配置 CoS 调度器,请执行以下操作:
创建最小保证带宽为 2 Gbps、最大带宽为 4 Gbps、优先级较低的调度器 (
be-sched),并将其映射到丢弃配置文件be-dp:[edit class-of-service schedulers] user@switch# set be-sched transmit-rate percent 20 user@switch# set be-sched shaping-rate percent 40 user@switch# set be-sched buffer-size percent 20 user@switch# set be-sched priority low user@switch# set be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp
注意:由于默认情况下禁用 ECN,因此不会显示任何 ECN 配置。
配置调度器映射 (
be-map),以便将调度器 (be-sched) 与转发类 (best-effort) 相关联:[edit class-of-service scheduler-maps] user@switch# set be-map forwarding-class best-effort scheduler be-sched
将调度器图
be-map与流量控制配置文件相关联 (be-tcp):[edit class-of-service traffic-control-profiles] user@switch# set be-tcp scheduler-map be-map
将流量控制配置文件
be-tcp与转发类集 (lan-pg) 和 10 千兆以太网接口 (xe-0/0/7) 相关联:[edit class-of-service] user@switch# set interfaces xe-0/0/7 forwarding-class-set lan-pg output-traffic-control-profile be-tcp
要求
此示例使用以下硬件和软件组件:
一台 QFX 交换机
任何受支持的 Junos 版本
概述
调度器参数为映射到调度器的队列定义以下特征:
transmit-rate— 最小带宽,也称为 承诺信息速率 (CIR)。映射到调度程序的每个队列将接收配置的最小绝对带宽量或配置的带宽百分比。传输速率还决定了队列可以共享的超额(额外)优先级组带宽量。额外的优先级组带宽将按照每个队列的传输速率比例在优先级组中的队列之间分配。您无法为严格高优先级队列配置传输速率。具有已配置传输速率的队列(转发类)不能包含在具有严格高优先级队列的转发类集中。注意:仅当您还在连接到队列所属的转发类集的流量控制配置文件中配置 时
guaranteed-rate,该transmit-rate设置才有效。如果未配置guaranteed-rate,transmit-rate则不起作用。转发类集中所有队列传输速率的总和不应超过流量控制配置文件保证速率。如果配置的传输速率总和超过转发类设置的保证速率,则提交检查将失败,并且系统会拒绝配置。注意:在带宽计算中包括前导码字节和帧间间隙字节以及数据字节。
注意:您无法为严格高优先级队列配置传输速率。具有已配置传输速率的队列(转发类)不能包含在具有严格高优先级队列的转发类集中。
shaping-rate— 最大带宽,也称为 峰值信息速率 (PIR)。每个队列接收配置的最大绝对带宽量或配置的带宽百分比(即使有更多带宽可用)。注意:在带宽计算中包括前导码字节和帧间间隙字节以及数据字节。
priority— 与调度程序关联的队列可以接收的两个带宽优先级之一:low- 调度程序的优先级较低。strict-high— 调度程序具有严格高优先级。您只能将一个队列配置为严格高优先级队列。严格高优先级会在任何其他队列接收带宽之前将计划的带宽分配给队列。其他队列接收严格高排队列提供服务后剩余的带宽。建议始终对严格高优先级队列应用整形速率,以防止它们使其他队列耗尽。如果不应用整形速率来限制严格高优先级队列可以使用的带宽量,则严格高优先级队列可能会使用所有可用的端口带宽,并使端口上的其他队列耗尽。
drop-profile-map— 将丢弃配置文件映射到丢失优先级和协议,以将WRED应用于调度器。buffer-size— 队列缓冲区的大小占端口上专用缓冲区空间的百分比,或表示在为显式配置的队列提供服务后剩余的端口上专用缓冲区空间的比例份额。explicit-congestion-notification— 在尽力而为队列上启用 ECN。ECN 支持在基于 TCP/IP 的网络上的两个启用 ECN 的端点之间发出端到端拥塞通知。必须在两个端点以及端点之间的所有中间设备上启用 ECN,ECN 才能正常工作。默认情况下,ECN 处于禁用状态。
如果一个入口端口将流量转发到多个出口端口,并且其中至少一个出口端口遇到拥塞,则在出口端口拥塞期间,可能会发生入口端口拥塞。如果发生这种情况,拥塞的出口端口可能会导致入口端口超出其入口缓冲区资源的公平分配。当入口端口超过其缓冲区资源分配时,入口处的帧将被丢弃。入口端口帧丢弃不仅会影响拥塞的出口端口,还会影响拥塞的入口端口转发流量的所有出口端口。
如果拥塞的入口端口丢弃了发往一个或多个未拥塞出口端口的流量,请配置加权随机早期检测 (WRED) 丢弃配置文件,并将其应用于导致拥塞的出口队列。丢弃配置文件可在出口处丢帧,而不是在入口端口造成拥塞,从而防止拥塞的出口队列影响其他端口上的出口队列。
不要为 FCoE 和无损转发类配置丢弃配置文件。FCoE 和其他无损流量队列需要无损行为。使用基于优先级的流控制 (PFC) 来防止无损优先级上的帧丢弃。
调度器图将调度器与转发类(队列)相关联。定义调度器并将其映射到调度器映射中的队列后,要配置硬件队列调度(分层端口调度),请执行以下操作:
将调度器图与流量控制配置文件相关联(流量控制配置文件为一组转发类调度资源,称为 转发类集 或 优先级组)。
将转发类和流量控制配置文件连接到接口。
示例:配置 CoS 分层端口调度 (ETS) 提供了分层调度的完整示例。
您最多可以将四个用户定义的调度器图与转发类集相关联。
此过程将配置映射到调度器图中的转发类(以及输出队列)的带宽属性和 WRED 特征。流量控制配置文件使用调度器 CoS 属性从优先级组可用的资源总数中确定应分配给各个输出队列的资源。
表 1 显示了此示例的配置组件。
组件 |
设置 |
|---|---|
硬件 |
QFX 交换机 |
调度程序 |
名称: |
调度器图 |
名称: |
流量控制配置文件 |
姓名:
注意:
本主题不介绍如何定义流量控制配置文件。 |
转发类集 |
姓名: |
验证
要验证队列调度程序是否已创建以及是否已映射到正确的接口,请执行以下任务:
验证调度器配置
目的
验证队列调度程序 be-sched 是否已使用最小保证带宽 2 Gbps、最大带宽 4 Gbps、优先级设置为 low和丢弃配置文件 be-dp创建。
行动
使用操作模式命令 show configuration class-of-service schedulers be-sched显示调度器:
user@switch> show configuration class-of-service schedulers be-sched transmit-rate percent 20; shaping-rate percent 40; buffer-size percent 20; priority low; drop-profile-map loss-priority low protocol any drop-profile be-dp;
验证调度器图配置
目的
验证是否已创建调度器图 be-map ,并将转发类 best-effort 与调度器 be-sched相关联,以及调度器图是否已连接到流量控制配置文件 be-tcp。
行动
使用操作模式命令 show configuration class-of-service scheduler-maps be-map显示调度器图:
user@switch> show configuration class-of-service scheduler-maps be-map forwarding-class best-effort scheduler be-sched;
显示流量控制配置文件,以验证是否已使用操作模式命令show configuration class-of-service traffic-control-profiles be-tcp scheduler-map附加调度器图be-map:
user@switch> show configuration class-of-service traffic-control-profiles be-tcp scheduler-map scheduler-map be-map;
本主题不介绍如何配置流量控制配置文件或其端口带宽分配。要实施分层调度,必须使用流量控制配置文件来配置优先级组的端口资源分配。
验证调度器是否与接口相关联
目的
验证与队列调度程序关联的转发类集 (lan-pg) 和流量控制配置文件 (be-tcp) 是否已连接到接口 xe-0/0/7。
行动
使用操作模式命令 show configuration class-of-service interfaces xe-0/0/7列出接口:
user@switch> show configuration class-of-service interfaces xe-0/0/7
forwarding-class-set {
lan-pg {
output-traffic-control-profile be-tcp;
}
}