1.WRR加权需要配置给两个WRR队列。可以通过发出以下接口命令来实现:
wrr-queue bandwith <weight for Q1> <weight for Q2>
加权1与队列1关联,该队列应为低优先级WRR队列。该加权应总是保持比加权2低一个级别。该加权可以在1和255之间任意取值,并可使用以下公式分配百分比:
对于队列1:[加权1/(加权1+加权2)]
对于队列2:[加权2/(加权1+加权2)]
必须定义所有队列类型的加权。这些加权类型不必相同。例如,对于2q2t,队列1得到20%的处理而队列2得到80%的处理:
cosmos#conf t
Enter configuration commands, one per line. End with CNTL/Z.
cosmos(config)#int gig 1/1
cosmos(config-if)#wrr-queue bandwidth ?
<1-255> enter bandwidth weight between 1 and 255
cosmos(config-if)#wrr-queue bandwidth 20 80
!-- 队列 1消耗20%的时间, 队列 2将消耗80%的时间。
cosmos(config-if)#
检查配置:
cosmos#show queueing interface gig 1/1
Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin
Port QoS is enabled
Port is untrusted
Default cos is 0
Transmit queues [type = 1p2q2t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 WRR low 2
2 WRR high 2
3 Priority 1
WRR bandwidth ratios: 20[queue 1] 80[queue 2]
queue-limit ratios: 90[queue 1] 5[queue 2]
.... output truncated....
注意: 当无法使用混合模式时,您可以对各接口配置不同的WRR加权。
1.必须定义发送队列比率。这可决定为不同队列之间分缓冲的方式。如果您有三个队列(1p2q2t),您需要对高优先级WRR队列以及绝对优先队列设定相同的级别。这些级别不能因硬件原因而不同。仅为这两个WRR队列配置带宽,如果有绝对优先队列,我们将自动地将与高优先级的WRR队列相同的值配置给该队列。
wrr-queue queue-limit <percentage WRR q1> <percentage WRR Q2>
cosmos(config)#int gig 1/2
cosmos(config-if)#wrr-queue queue-limit 70 15
!--队列 1将占用70% 缓冲器,队列 2 和3各占15%。
queue-limit configured on: Gi1/1 Gi1/2
检查配置:
cosmos#show queueing interface gig 1/2
Interface GigabitEthernet1/2 queueing strategy: Weighted Round-Robin
Port QoS is enabled
Port is untrusted
Default cos is 0
Transmit queues [type = 1p2q2t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 WRR low 2
2 WRR high 2
3 Priority 1
WRR bandwidth ratios: 5[queue 1] 255[queue 2]
queue-limit ratios: 70[queue 1] 15[queue 2]
注意: 最好为低优先级WRR队列留最大缓冲区,因为对于这个队列,我们需要启用更多缓冲器。其它队列将享受较高优先级的服务。
1.最后一步是对WRED队列或者尾端丢弃队列配置阈值级别。命令如下:
使用WRED作为丢弃机制的队列,配置阈值采用以下命令:
wrr-queue random-dtect max-threshold <Q number> <threshold 1 value> <threshold
2 value>
对于使用尾端丢弃作为丢弃机制的队列,采用以下命令:
wrr-queue threshold <Q number> <threshold 1 value> <threshold 2 value>
配置WRED队列:
cosmos(config)# int gig 1/1
cosmos(config-if)#wrr-queue random-detect max-threshold 1 50 80
!-- 将队列1的阀值设置为50,最大阀值的80%配置于:Gi1/1 Gi1/2.
cosmos(config-if)#wrr-queue random-detect max-threshold 2 40 60
!-- 将队列2的阀值设置为49,最大阀值的60%配置于:Gi1/1 Gi1/2.
配置尾端丢弃队列:
cosmos(config)#int fast e 3/1
cosmos(config-if)#wrr-queue threshold ?
<1-2> enter threshold queue id (1-2)
cosmos(config-if)#wrr-queue threshold 1 ?
<1-100> enter percent of queue size between 1 and 100
cosmos(config-if)#wrr-queue threshold 1 50 100
!-- 我们将队列1(低优先级)2q2t接口没有尾数的阀值设置为50,
!-- 并填满整个缓冲器:
threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 Fa3/9 Fa3/10
Fa3/11 Fa3/12
cosmos(config-if)#
cosmos(config-if)#
cosmos(config-if)#wrr-queue threshold 2 40 100
!-- 我们将队列2(高优先级)2q2t接口没有尾数的阀值设置为40,
!-- 并填满整个缓冲器:
threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 Fa3/9 Fa3/10
Fa3/11 Fa3/12
cosmos(config-if)#
检查配置:
cosmos#show queueing int gig 1/1
Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin
Port QoS is enabled
Port is untrusted
Default cos is 0
Transmit queues [type = 1p2q2t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 WRR low 2
2 WRR high 2
3 Priority 1
WRR bandwidth ratios: 20[queue 1] 80[queue 2]
queue-limit ratios: 70[queue 1] 15[queue 2]
queue random-detect-max-thresholds
----------------------------------
1 50[1] 80[2]
2 40[1] 60[2]
cosmos#show queueing int fa 3/1
Interface FastEthernet3/1 queueing strategy: Weighted Round-Robin
Port QoS is enabled
Port is untrusted
Default cos is 0
Transmit queues [type = 2q2t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 WRR low 2
2 WRR high 2
WRR bandwidth ratios: 100[queue 1] 255[queue 2]
queue-limit ratios: 90[queue 1] 10[queue 2]
queue tail-drop-thresholds
--------------------------
1 50[1] 100[2]
2 40[1] 100[2]
对于该队列,阈值的配置以及CoS的分配无法在逐个端口进行。所有变化都应用于一组相邻的端口:
千兆线路卡的四个端口:端口1至端口4是一组,端口5至端口8是另一组
10/100端口或者100光纤端口的12个端口:1到12、13到24、25到36、36到48
监控输出调度以及配置检验
对于某个和输出调度相关的端口,检验当前运行时间配置的最简单的命令是show queueing interface [ gig | fast eth] [ slot/port]命令。该命令显示端口上的队列类型、CoS到不同队列和阈值的映射、缓冲共享以及WRR加权(在这里,队列1为20%
WRR,队列2为80% WRR)。该命令显示输出调度的所有配置信息,以及每个队列的每个阈值所丢充的数据包数量:
cosmos#show queueing int gig 1/1
Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin
Port QoS is enabled
Port is untrusted
Default COS is 0
Transmit queues [type = 1p2q2t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 WRR low 2
2 WRR high 2
3 Priority 1
WRR bandwidth ratios: 20[queue 1] 80[queue 2]
queue-limit ratios: 70[queue 1] 15[queue 2]
queue random-detect-max-thresholds
----------------------------------
1 50[1] 80[2]
2 40[1] 60[2]
queue thresh cos-map
---------------------------------------
1 1 0 1
1 2 2 3
2 1 4 6
2 2 7
3 1 5
Receive queues [type = 1p1q4t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 Standard 4
2 Priority 1
queue tail-drop-thresholds
--------------------------
1 100[1] 100[2] 100[3] 100[4]
queue thresh cos-map
---------------------------------------
1 1 0 1
1 2 2 3
1 3 4
1 4 6 7
2 1 5
Packets dropped on Transmit:
BPDU packets: 0
queue thresh dropped [cos-map]
---------------------------------------------------
1 1 0 [0 1 ]
1 2 0 [2 3 ]
2 1 0 [4 6 ]
2 2 0 [7 ]
3 1 0 [5 ]
Packets dropped on Receive:
BPDU packets: 0
queue thresh dropped [cos-map]
---------------------------------------------------
1 1 0 [0 1 ]
1 2 0 [2 3 ]
1 3 0 [4 ]
1 4 0 [6 7 ]
2 1 0 [5 ]
输出调度实例
Catalyst 6000中产生以下流量:
在千兆端口1/2:一千兆流量,优先值为零
在千兆端口5/2:
133 M流量 优先值为七
133 M流量 优先值为六
133 M流量 优先值为五
133 M流量 优先值为四
133 M流量 优先值为三
133 M流量 优先值为二
133 M流量 优先值为一
所有单点发送业务从交换机每个千兆端口1/1中出口,且出现超量预订。 出处:互联网 |