传输优先级调度
Junos 支持多级传输优先级,按优先级递增的顺序依次为 low、 、 、 medium-highlow-latencylow-highmedium-lowhighstrict-highlow-medium这使软件能够在低优先级队列之前为高优先级队列提供服务。支持哪些传输优先级可能因平台和软件版本而异。
通过优先级安排对流量进行优先级排序
优先级调度决定了输出接口从其队列传输流量的顺序,从而确保包含重要流量的队列能够更好地访问传出接口。Junos 通过检查每个队列的分配优先级以及每个队列是否在其定义的带宽配置文件内来实现优先级调度。Junos 定期将队列传输的数据量与在层次结构级别上定义[edit class-of-service schedulers scheduler-name]的配置调度器传输速率 (transmit-rate) 分配给它的带宽量进行比较,以确定单个队列是否在其带宽配置文件内。当传输量小于分配的量时,队列被视为在配置文件中。当队列的传输量大于其分配量时,队列会超出配置文件。
给定输出物理或逻辑接口的队列会根据其优先级划分为多个组。任何此类集都包含具有相同优先级的队列。
Junos 按优先级降序遍历各集。如果队列集中至少有一个队列有要传输的数据包,软件将选择该队列集。基于在集合内运行的加权轮循 (WRR) 算法选择集合中的队列。
Junos 使用以下步骤执行优先级排队:
软件会查找当前处于配置文件中的所有高优先级队列。首先以加权轮询方式对这些队列进行服务。
该软件会查找当前处于分析中的所有中高优先级队列。这些队列以加权轮询方式排在第二位。
该软件会查找当前处于分析中的所有中低优先级队列。这些队列以加权轮询方式排在第三位。
该软件会查找当前处于配置文件中的所有低优先级-高优先级队列。这些队列以加权轮询方式排在第二位。
该软件会查找当前处于分析中的所有低-中优先级队列。这些队列以加权轮询方式排在第三位。
该软件会查找当前处于配置文件中的所有低优先级队列。这些队列以加权轮询方式排在第四位。
该软件会查找当前不在配置文件中且不受速率限制的所有高优先级队列。加权轮询算法将应用于这些队列以进行服务。
该软件可查找当前不在配置文件中且不受速率限制的所有中高优先级队列。加权轮询算法将应用于这些队列以进行服务。
该软件会查找当前配置文件外且不受速率限制的所有中低优先级队列。加权轮询算法将应用于这些队列以进行服务。
该软件可查找当前配置文件外且不受速率限制的所有低优先级-高优先级队列。加权轮询算法将应用于这些队列以进行服务。
该软件可查找当前配置文件外且不受速率限制的所有中低优先级队列。加权轮询算法将应用于这些队列以进行服务。
该软件可查找当前配置文件外的所有低优先级队列,并且这些队列不受速率限制。最后以加权轮询方式对这些队列进行服务。
低延迟队列 (LLQ) 概述
在支持低延迟队列 (LLQ) 的平台上。LLQ 使延迟敏感数据能够优先于其他流量。 low-latency 队列的优先级高于任何其他优先级队列,包括 strict-high 队列以及低延迟调度配置文件。
对于虚拟输出队列 (VOQ) 的端口调度,低延迟 VOQ 接收自己的专用出口队列。高优先级 VOQ 接收第二个专用出口队列,低优先级 VOQ 接收第三个专用出口队列。
由于分层服务等级 (HCoS) 的计划层次结构,分层调度最多可以使用两个出口队列。因此,对于 VOQ 的分层调度,低延迟 VOQ 和高优先级 VOQ 接收一个通用专用出口队列,低优先级 VOQ 接收第二个专用出口队列。
配置低延迟 VOQ 时,我们建议执行以下作:
-
在流量达到低延迟 VOQ 之前,使用监管器对流量的突发性进行规范化。
-
在一个物理或逻辑接口上最多配置两个低延迟 VOQ。
-
为低延迟 VOQ 分类和调度流量(即预留带宽),以免这些队列拥塞。
低延迟队列接收与其他队列相同的缓冲区,以有效地使用有限的硬件 VOQ 缓冲区配置文件。
严格-高优先级配置概述
根据平台的不同,可以将每个接口的一个或多个队列配置为具有 strict-high 优先级,其工作方式与 high 优先级相同,但提供无限的传输带宽。只要具有 strict-high 优先级的队列有要发送的流量,它就会优先于所有其他队列,但具有 high 优先级的队列除外。具有 strict-high 和 high 优先级的队列轮流传输数据包,直到 strict-high 队列为空、 high 优先级队列为空或 high 优先级队列的带宽信用用完为止。只有当满足这些条件时,优先级较低的队列才能发送流量。
在每个接口支持多个 strict-high 队列的平台上,硬件按标有 strict-high 优先级的队列号降序为队列提供服务。
将队列配置为具有 strict-high 优先级时,无需将语句包含在 transmit-rate 层次结构级别的队列配置 [edit class-of-service schedulers scheduler-name] 中,因为优先级队列的 strict-high 传输速率不受 WRR 配置的限制。如果在优先级队列上 strict-high 配置传输速率,则不会影响 WRR作。但是,传输速率确实会影响延迟缓冲区的计算,并且还充当命令等命令 show interface queue 输出中的占位符。
strict-high 优先级队列可能会使 low 优先级队列匮乏,并且在某些情况下可能会限制 high 优先级队列。该 high 优先级允许您保护流量类不被队列中的 strict-high 流量所占用。例如,网络控制队列可能需要少量带宽分配(比如 5 %)。您可以为此队列分配 high 优先级,以防止其服务不足。
具有strict-high优先级的队列将取代优先级较低的队列的带宽保证;因此,我们建议您使用strict-high优先级来确保特殊流量(如语音流量)的正确排序。通过将strict-high选项应用于rate-limit队列的传输速率,仅将通常需要的带宽量分配给具有strict-high优先级的队列,可以为优先级较低的队列保留带宽保证。例如,考虑以下传输带宽分配:
-
Q0 BE - 20 %,低优先级
-
Q1 EF - 30 %,严格-高优先级
-
Q2 AF - 40 %,低优先级
-
Q3 NC - 10 %,低优先级
这种带宽分配假定,一般来说,EF 转发类只需要接口传输带宽的 30 %。但是,如果在 EF 转发类上接收到短时间的猝发流量,并且未应用该 rate-limit 选项,则由于该 strict-high 设置,将 100 % 的带宽提供给 EF 转发类。
配置优先级调度器
本文介绍如何配置优先级调度。
[edit class-of-service schedulers scheduler-name] priority priority-level;
优先级可以是low、、low-medium、low-high、highstrict-highmedium-lowmedium-high或 。low-latency优先级映射到底层硬件中的数字优先级。在某些情况下,不同的优先级表现相似,因为只有当两个软件优先级映射到两个不同的硬件优先级时,它们的表现才会不同。
只要优先级较高的转发类保留足够的带宽信用额度,高优先级队列就会先于低优先级队列传输数据包。使用很大一部分传输带宽配置优先级较高的队列时,该队列可能会锁定(或 淹没)优先级较低的流量。
在以下示例过程中,您将创建一个调度器,配置调度器与转发类之间的映射,然后将调度器分配给一个接口。
特定于平台的优先级调度程序行为
使用 功能浏览器 确认平台和版本对计划优先级的支持。
使用下表查看您的平台特定于平台的行为:
| 平台 |
特定于平台的行为 |
|---|---|
| ACX5048 和 ACX5096 路由器 |
|
| ACX7000 系列 |
|
| EX4400 |
在 EX4400 交换机上,对队列 0 到 3 应用严格高优先级调度程序也会对队列 8 到 11 应用严格高优先级。因此,瞻博网络建议仅对队列 4 到 7 应用严格高优先级调度程序。 |
| EX4600 和 QFX5100 |
在 QFX5100 和 EX4600 交换机上,您只能将一个队列配置为严格-高优先级队列。我们建议您始终对严格高优先级队列应用整形速率,以防止它们使其他队列挨饿。整形速率 (整形器) 设置队列可以使用的最大带宽量。(与使用QFX10000交换机上的传输速率来限制接受严格高优先级处理的流量不同,超过整形速率的流量将被丢弃,并且不会被视为共享超出带宽的尽力而为流量。如果未应用整形速率来限制严格-高优先级队列可以使用的带宽量,则严格-高优先级队列可以使用所有可用端口带宽,并使端口上的其他队列匮乏。 |
| QFX10000 |
在QFX10000交换机上,您可以根据需要配置任意数量的严格-高优先级队列。在QFX10000交换机上,强烈建议对严格高优先级队列应用传输速率,以防止这些队列占用其他队列。在严格-高优先级队列上配置的传输速率会将接受严格-高优先级处理的流量限制为传输速率设置的数量或百分比。 |