本文描述如何排除输出下落故障由于在Cisco Catalyst交换机系列2960的服务质量(QoS), 3750, 3750G, 3750X, 3560。
Cisco建议您有QoS基础知识。
本文的信息根据这些平台:Cisco Catalyst交换机系列2960, 3750, 3750G, 3750X, 3560。
The information in this document was created from the devices in a specific lab environment.All of the devices used in this document started with a cleared (default) configuration.If your network is live, make sure that you understand the potential impact of any command.
在拥塞的时期QoS用于优先安排更多重的数据。结果,在QoS是启用的后,较不重要批量数据也许经受丢包。
Cisco接入层交换机在硬件方面实现QoS功能。本文帮助您确定丢包是否是由QoS造成的并且描述缓和他们的多种排队和缓冲微调选项。
入口默认队列
出口默认队列
Switch#show int gi1/0/1
!-- Some output omitted.
GigabitEthernet0/1 is up, line protocol is up (connected)
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX
input flow-control is off, output flow-control is unsupported
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1089
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 4000 bits/sec, 6 packets/sec
5 minute output rate 3009880 bits/sec, 963 packets/sec
Switch#show mls qos
QoS is enabled
QoS ip packet dscp rewrite is enabled
Switch#show mls qos int gi1/0/1 statistics
GigabitEthernet1/0/1 (All statistics are in packets)
dscp: incoming
-------------------------------
0 - 4 : 0 0 0 0 0
5 - 9 : 0 0 0 0 0
10 - 14 : 0 0 0 0 0
15 - 19 : 0 0 0 0 0
20 - 24 : 0 0 0 0 0
25 - 29 : 0 0 0 0 0
30 - 34 : 0 0 0 0 0
35 - 39 : 0 0 0 0 0
40 - 44 : 0 0 0 0 0
45 - 49 : 0 198910 0 0 0
50 - 54 : 0 0 0 0 0
55 - 59 : 0 0 0 0 0
60 - 64 : 0 0 0 0
dscp: outgoing
-------------------------------
0 - 4 : 0 0 0 0 0
5 - 9 : 0 0 0 0 0
10 - 14 : 0 0 0 0 0
15 - 19 : 0 0 0 0 0
20 - 24 : 0 0 0 0 0
25 - 29 : 0 0 0 0 0
30 - 34 : 0 0 0 0 0
35 - 39 : 0 0 0 0 0
40 - 44 : 0 0 0 0 0
45 - 49 : 0 248484 0 0 0
50 - 54 : 0 0 0 0 0
55 - 59 : 0 0 0 0 0
60 - 64 : 0 0 0 0
cos: incoming
-------------------------------
0 - 4 : 2 0 0 0 0
5 - 7 : 0 0 0
cos: outgoing
-------------------------------
0 - 4 : 0 0 0 0 0
5 - 7 : 0 0 0
output queues enqueued:
queue: threshold1 threshold2 threshold3
-----------------------------------------------
queue 0: 248484 0 0
queue 1: 0 0 0
queue 2: 0 0 0
queue 3: 0 0 0
output queues dropped:
queue: threshold1 threshold2 threshold3
-----------------------------------------------
queue 0: 1089 0 0
queue 1: 0 0 0
queue 2: 0 0 0
queue 3: 0 0 0
Policer: Inprofile: 0 OutofProfile: 0Note:此示例显示在丢弃信息包的队列0/threshold1的被丢弃的装箱。在本文的其他示例中,队列编号是1 - 4;因此,此值将是queue1。
Switch#show mls qos maps dscp-output-q
Dscp-outputq-threshold map:
d1 :d2 0 1 2 3 4 5 6 7 8 9
------------------------------------------------------------
0 : 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01
1 : 02-01 02-01 02-01 02-01 02-01 02-01 03-01 03-01 03-01 03-01
2 : 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01
3 : 03-01 03-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01
4 : 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 04-01 04-01
5 : 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01
6 : 04-01 04-01 04-01 04-01
Note:每个队列集都具有相关选项,用于为四个出口队列配置缓冲大小和阈值。然后,可以将任何一个队列集应用于任何一个端口。默认情况下,所有接口使用队列集1输出队列,除非明确配置使用队列集2。
在此方案中,在队列集1的queue1有25%总缓冲缓冲区空间,并且阈值1设置到100%
Switch#show mls qos queue-set
Queueset: 1
Queue : 1 2 3 4
----------------------------------------------
buffers : 25 25 25 25
threshold1: 100 200 100 100
threshold2: 100 200 100 100
reserved : 50 50 50 50
maximum : 400 400 400 400
Queueset: 2
Queue : 1 2 3 4
----------------------------------------------
buffers : 25 25 25 25
threshold1: 100 200 100 100
threshold2: 100 200 100 100
reserved : 50 50 50 50
maximum : 400 400 400 400
Note:您能更改队列集1;然而,默认情况下作为所有接口请使用队列集1,更改被反映对所有接口。
在本例中,更改队列集2,以便queue1接受70%总缓冲。
Switch(config)#mls qos queue-set output 2 buffers 70 10 10 10在本例中,更改队列集2和queue1阈值。阈值1和阈值2被映射到3100,以便他们能如果必须拉从后备的池的缓冲区。
Switch(config)#mls qos queue-set output 2 threshold 1 3100 3100 100 3200
Switch#show mls qos queue-set
Queueset: 1
Queue : 1 2 3 4
----------------------------------------------
buffers : 25 25 25 25
threshold1: 100 200 100 100
threshold2: 100 200 100 100
reserved : 50 50 50 50
maximum : 400 400 400 400
Queueset: 2
Queue : 1 2 3 4
----------------------------------------------
buffers : 70 10 10 10
threshold1: 3100 100 100 100
threshold2: 3100 100 100 100
reserved : 100 50 50 50
maximum : 3200 400 400 400
Switch(config)#int gi1/0/1
Switch(config-if)#queue-set 2
Switch(config-if)#end验证接口被映射对队列集2。
Switch#show run int gi1/0/1
interface GigabitEthernet1/0/1
switchport mode access
mls qos trust dscp
queue-set 2
end检查接口是否继续丢弃信息包。
Switch(config-if)#srr-queue bandwidth share 1 75 25 5
Switch(config-if)#srr-queue bandwidth shape 2 0 0 0检查接口是否继续丢弃信息包。
Note:在为其他队列服务前,将始终为优先队列提供服务,直至该队列为空。默认情况下在2960/3560/3750交换机, queue1是优先级队列。
Switch(config)#int gi1/0/1
Switch(config-if)#priority-queue out
Switch(config-if)#end在接口被丢弃信息包的标记可以被映射,以便去queue1 (优先级队列)。此动作保证与此标记的数据流在别的前总是被处理。
Switch(config)#mls qos srr-queue output dscp-map queue 1 threshold 1
这是一些常见问题:
Q :什么时候修改队列集,并且什么时候使用共享/整形?
A:决策取决于丢包的本质。如果丢包间歇地增加,此问题很可能归结于突发数据流。相反,如果丢包不断地恒定速率增加,比它丢弃信息包很可能接受更多数据的队列能派出。
对于断断续续的丢包,队列必须有能适应偶尔的突发传输的一个大缓冲区。为了实现此解决方案,您必须修改队列集和分配更多缓冲区到受影响的队列和增加门限值。
对于持续丢包,您必须配置调度程序经常服务受影响的队列和使用自队列的更多信息包每CPU周期。 为了实现此解决方案,您必须在出口的共享/整形排队的confiure。
Q :共享模式和整形的模式有何区别?
A:在整形模式下,会保证出口队列的带宽百分比,并限制为该比率。整形的数据流不能使用比分配的带宽更多的带宽,即使链路处于空闲状态也是如此。整形的模式随着时间的推移提供数据流甚而流并且减少突发数据流峰顶和谷。使用整形,绝对值每个重量用于计算带宽可用为队列。
srr队列带宽形状weight1 weight2 weight3 weight4
反面比率(1/weight)控制此队列的整形的带宽。换句话说, queue1是总带宽的后备的1/weight1百分比等等。如果配置重量0,对应的队列在共享模式运行。用srr队列带宽指定的重要性shape命令被忽略,并且重要性用interface configuration命令srr队列带宽的共用指定为队列进入的效果。
在共享模式,队列共享带宽在他们根据被配置的重要性。可以保证得到这一级别的带宽,但不限于这一级别的带宽。例如,如果队列是空的和不再要求链路的共用,剩余的队列能扩展到未使用的带宽和在他们共享它。
srr队列带宽共用weight1 weight2 weight3 weight4
queue1是保证的至少weight1/(weight1 + weight2 + weight3 +带宽的weight4)百分比,但是能也吃如果必须到其他非整形的队列带宽。