在带PFC的Catalyst 6000h上进行输出调度( 五 )


即使增加了WRR加权,队列2中的数据包仍被丢弃 。但是,并非很多数据包被丢弃 。队列2中只有0.03%的丢包 。实例4:修改队列极限缓冲区分配如实例2和3所示,尽管WRR百分比能确保不会出现如此多的丢弃,但在队列2中仍然有丢弃的数据包 。在队列2中仍有第二阈值的数据包被丢弃 。这说明,当我们到达设定为100%的第二阈值且发现队列饱和时,数据包仍被丢弃 。为了改善这个情况,对队列极限作出更改(分配给各队列的缓冲区大小) 。在以下实例中,队列1的队列极限设定为70%,队列2为15%,绝对优先队列为15%:show run gig 1/1interface GigabitEthernet1/1no ip addresswrr-queue bandwidth 1 255wrr-queue queue-limit 70 15mls qos trust dscpswitchportswitchport mode accessendnelix#show queueing int gig 1/1Interface GigabitEthernet1/1 queueing strategy:Weighted Round-RobinPort QoS is enabledTrust state: trust DSCPDefault cos is 0Transmit queues [type = 1p2q2t]:Queue IdSchedulingNum of thresholds----------------------------------------- 1 WRR low2 2 WRR high2 3 Priority1WRR bandwidth ratios:1[queue 1] 255[queue 2]queue-limit ratios:70[queue 1]15[queue 2]queue random-detect-max-thresholds----------------------------------140[1] 100[2]240[1] 100[2]queue thresh cos-map---------------------------------------110 1122 3214226 7315Receive queues [type = 1p1q4t]:Queue IdSchedulingNum of thresholds----------------------------------------- 1 Standard4 2 Priority1 queue tail-drop-thresholds--------------------------1100[1] 100[2] 100[3] 100[4]queue thresh cos-map---------------------------------------110 1122 3134146 7215Packets dropped on Transmit:BPDU packets:0queue threshdropped[cos-map]---------------------------------------------------11154253046[0 1 ]120[2 3 ]210[4 ]220[6 7 ]310[5 ]现在,仅在队列1中存在丢弃情况 。
采用输出调度减少延迟以及抖动上述实例表明,实施输出调度的益处在于:万一输出端口出现超量预订,可以避免IP话音(VoIP)或者要害任务的话音丢弃 。超量预订在正常网络中并不经常出现(非凡是千兆链路上) 。超量预订一般只在流量高峰期间发生或在特定短时期内流量突发的情况下发生 。
即使没有任何超量预订,输出调度也能在端到端实施QoS的网络中提供极大的帮助 。使用输出调度将有助于减少延迟及抖动 。以下是输出调度如何帮助减少延迟和抖动的实例 。
减少延迟当数据包在等待传输时假如被“丢失”在各个交换机的缓冲区中,数据包的延迟会增加 。例如,一个CoS为5的小型话音数据包在出现大量拥堵或者正在进行巨量文件传输时从端口发出 。假如该输出端口不具有任何QoS,且假定该小型话音数据包的队列位于10个大型的1500字节数据包之后,您可以很轻易地计算出发送10个大型数据包的千兆速度时间:
120微秒内发送(10 x 1500 x 8)= 120000位假如该数据包在网络中穿行时需要通过八或九个交换机,则可能产生1毫秒的延迟时间 。这只是对网络中通过交换机的输出队列延迟所进行的计算 。
注重: 假如您需要让同样的10个大型数据包在10M接口上排队(例如有一个连接IP电话和一台PC机),所产生的延迟将为:
120毫秒内发送(10 x 1500 x 8)= 120000比特实施输出调度将确保CoS为5的话音数据包被放入绝对优先队列,这样就能在CoS小于5的数据包之前得到发送 。由此可减少延迟 。
减少抖动
使用输出调度的另一个重要好处就是减少抖动 。抖动是可以在同一信息流内的数据包中观察到的延迟变化 。以下是输出调度如何来减少抖动的实例情况 。
在上述情况中,有两个业务流需要在同一个端口发送:
一条话音流从10M以太网端口进入 。一条FTP流从1千兆以太网的上行链路进入 。两个业务流通过同一个输出端口离开交换机 。本例说明当没有使用输出调度时可能发生的情况 。所有大型数据包可能在两个话音数据包之间交织,在从同一业务流中接收话音数据包时产生抖动 。当交换机传送大型数据包时,接收数据包1以及数据包N 1之间,存在一个更大的延迟 。但是,N 1和N 2之间的延迟可以忽略不计 。这导致了话音业务流中的抖动 。可以通过使用绝对优先队列轻而易举地避免该问题的发生 。请确保话音数据包的CoS值映射至绝对优先队列 。

推荐阅读