将调度程序图应用于机箱级队列
在智能排队 (IQ) 和智能排队 2 (IQ2) 接口上,以及在带 SFP+ 的 10x10GE MIC 上,从数据包转发组件馈送到 PIC 的流量默认使用低丢包优先级 (PLP),并且均匀分布在四个机箱队列(不是 PIC 队列)上,无论每个逻辑接口的调度配置如何。此默认行为可能会导致流量拥塞。
默认机箱调度程序为队列 0 到队列 3 分配资源,并将 25% 的带宽分配给每个队列。将机箱配置为使用四个以上队列时,必须配置并应用自定义机箱调度程序以覆盖默认机箱调度程序。
要应用自定义机箱调度程序:
指定要应用调度程序的接口。
[edit] user@host# edit class-of-service interfaces interface-name
例如:
[edit] user@host# edit class-of-service interfaces so-0/1/*
指定要应用于接口的自定义调度程序的名称。
[edit class-of-service interfaces so-0/1/0] user@host# set scheduler-map-chassis map-name
要控制从机箱队列传输到 PIC 的聚合流量,您可以配置机箱队列,使其从关联的逻辑接口派生其调度配置。
要配置机箱队列以从关联的逻辑接口派生调度:
指定从中派生调度配置的逻辑接口。
[edit] user@host# edit class-of-service interfaces interface-name
例如:
[edit] user@host# edit class-of-service interfaces so-0/1/*
指定调度程序配置派生自指定的逻辑接口。
[edit class-of-service interfaces so-0/1/0] user@host# set scheduler-map-chassis derived
如果在配置中指定 scheduler-map-chassis derived
语句,则随后在层次结构级别添加 [edit interfaces interface-name]
或删除逻辑接口时,可能会发生数据包丢失。
当出口接口上发生分段时,命令输出 show interfaces queue
中显示的第一组数据包计数器将显示分段后的值。第二组数据包计数器(在 Packet Forwarding Engine Chassis Queues
字段下方)显示分段前值。有关该 show interfaces queue
命令的详细信息,请参阅 CLI 资源管理器。
您可以在同一接口配置中同时指定 和 scheduler-map
scheduler-map-chassis derived
语句。该 scheduler-map
语句控制 PIC 内的调度程序,而 scheduler-map-chassis derived
语句控制传输到整个 PIC 的聚合流量。
对于千兆以太网 IQ PIC,必须在接口配置中同时指定 和 scheduler-map
scheduler-map-chassis derived
语句。
通常,在配置中指定 scheduler-map-chassis
语句时,必须使用接口通配符作为接口名称,如 中 type-fpc/pic/*
所示。例如,通配符必须使用此格式。 so-1/2/*
,表示 FPC 插槽 1、PIC 插槽 2 上的所有接口。有一个例外 — 您只能将机箱调度程序图应用于千兆以太网 IQ PIC 上的特定接口。
根据 Junos OS 通配符规则,特定接口配置会覆盖通配符配置。对于机箱时间表图配置,此规则不适用;而是将特定接口 CoS 配置添加到机箱调度程序图配置中。有关通配符如何使用机箱调度程序图的详细信息,请参阅 示例:调度数据包转发组件队列。有关通配符的一般信息,请参阅 Junos OS 路由设备管理库。
仅当您不添加任何特定配置时,接口才会应用通配符配置。如果添加特定接口配置,则接口将删除应用的通配符配置并应用指定的配置。
将自定义调度程序应用于数据包转发组件队列
或者,您可以将自定义调度程序应用于机箱队列,而不是将机箱队列配置为从 PIC 上的逻辑接口自动派生其调度配置。
要应用自定义机箱调度程序:
将自定义时间表图应用于数据包转发组件队列时,或者修改已应用于数据包转发组件队列的自定义时间表图的配置时,机箱队列中已有的数据包可能会被丢弃。数据包丢失量不是确定性的,取决于应用或修改自定义时间表图时提供的流量负载。
示例:调度数据包转发组件队列
- 示例:将机箱调度程序图应用于 2 端口 IQ PIC
- 示例:在通道化 DS3 IQ PIC 上配置两个 T3 接口
- 示例:将普通调度程序应用于两个 T3 接口
- 示例:将机箱调度程序应用于两个 T3 接口
示例:将机箱调度程序图应用于 2 端口 IQ PIC
此示例将机箱调度程序图应用于接口 so-0/1/0
和 so-0/1/1
。
根据惯常的通配符规则, so-0/1/0
配置将覆盖该 so-0/1/*
配置,这意味着机箱调度程序图 MAP1
不会应用于 so-0/1/0
。但是,在这种情况下不遵守通配符规则;机箱时间表图适用于接口 so-0/1/0
和 so-0/1/1
。
要配置机箱队列以从关联的逻辑接口派生调度:
不推荐:应用机箱时间表图时,对千兆以太网 IQ 接口使用通配符
在千兆以太网 IQ PIC 上,您可以在特定接口级别和通配符级别应用机箱调度程序图。我们不建议这样做,因为通配符机箱调度程序映射优先,这可能不是预期的效果。例如,如果要将机箱计划程序映射 MAP1 映射到端口 0,将 MAP2 映射到端口 1,我们不建议执行以下操作:
[edit class-of-service] user@host# set interfaces ge-0/1/0 scheduler-map-chassis MAP1 user@host# set interfaces ge-0/1/* scheduler-map-chassis MAP2
[edit class-of-service] user@host# show interfaces { ge-0/1/0 { scheduler-map-chassis MAP1; } ge-0/1/* { scheduler-map-chassis MAP2; } }
推荐:应用机箱时间表图时单独识别千兆以太网 IQ 接口
相反,我们建议使用此配置:
[edit class-of-service] user@host# set interfaces ge-0/1/0 scheduler-map-chassis MAP1 user@host# set interfaces ge-0/1/1 scheduler-map-chassis MAP2
[edit class-of-service] user@host# show interfaces { ge-0/1/0 { scheduler-map-chassis MAP1; } ge-0/1/1 { scheduler-map-chassis MAP2; } }
示例:在通道化 DS3 IQ PIC 上配置两个 T3 接口
要在信道化 DS3 IQ PIC 上配置两个 T3 接口:
示例:将普通调度程序应用于两个 T3 接口
为传输到两个 T3 接口的聚合流量配置调度程序。
示例:将机箱调度程序应用于两个 T3 接口
将调度程序绑定到传输到整个 PIC 的聚合流量。机箱调度程序控制来自数据包转发组件馈送到接口 t3-3/0/*
的流量:
不推荐:应用调度程序时对逻辑接口使用通配符
请勿使用通配符将调度程序应用于逻辑接口。例如,如果使用一个参数配置逻辑接口(单元),并使用通配符将调度程序图应用于接口,则逻辑接口将不会应用调度程序。以下配置将正确提交,但不会将调度器映射应用于接口 so-3/0/0.0
:
[edit] user@host# set class-of-service interfaces so-3/0/* unit 0 scheduler-map MY_SCHED_MAP user@host# set class-of-service interfaces so-3/0/0 unit 0 shaping-rate 100m
[edit class of service] user@host# show interfaces { so-3/0/* { unit 0 { scheduler-map MY_SCHED_MAP; } } so-3/0/0 { unit 0 { shaping-rate 100m; } } }
建议:应用调度程序时单独识别逻辑接口
始终将调度程序应用于不带通配符的逻辑接口:
[edit] user@host# set class-of-service interfaces so-3/0/0 unit 0 scheduler-map MY_SCHED_MAP user@host# set class-of-service interfaces so-3/0/0 unit 0 shaping-rate 100m
[edit class of service] user@host# show interfaces { so-3/0/0 { unit 0 { scheduler-map MY_SCHED_MAP; shaping-rate 100m; } } }
同样的通配符行为也适用于分类器和重写以及调度程序。