在很多output drop的case中,TAC工程师会跟客户解释说是由于突发流量burst traffic导致了output drop。 如何鉴定一个出向接口的流量是否有burst呢?
背景:
Burst traffic能导致output drop,甚至是在我们看到show interface中output rate明显低于接口最大的capacity的时候也会导致output drop。交换机默认output rate是五分钟的平均值,最小可以人工调节为30秒,但是这并不能准确的看出在极小的时间段内(例如几毫秒)流量的突发。我们可以span出向接口的流量并借助wireshark来分析是否有burst。
TS方法:
1, 找到output drop的counter一直在增长的接口。 例如下面的例子,一个百兆的口五分钟平均流量是55Mb:
Switch#show int fa1/1 | i duplex|output drops|rate
Full−duplex, 100Mb/s, media type is 10/100BaseTX
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 5756 《=====增长
5 minute input rate 55343353 bits/sec, 9677 packets/sec
5 minute output rate 55456293 bits/sec, 9878 packets/sec
2, 在交换机上配置span,来抓取该接口的出向流量, 连一台运行wireshark的电脑在另外一个端口上面,将故障端口的出向流量span到接电脑的端口:
Switch#config t
Switch(conf)#monitor session 1 source interface fa1/1 tx
Switch(conf)#monitor session 1 destination interface fa1/2
3, span抓好包以后,用wireshark打开,在菜单中选择statistics里的IO graph:
4, 在默认出现的图中我们可能看到的是非常平稳的一条线,看起来流量很稳定。但是,一秒钟对于一个高速收发数据包的接口来说是非常大的一个时间段。在一秒钟之内,如果流量绝对的平稳,并且不需要任何的buffer来存储突发流量,一个100Mb/s的link可以穿过100M的流量。
然而,如果大部分的流量试图从这个端口在极小于一秒钟的时间内从这个端口出去的话,交换机就需要很大的buffer去存储,如果buffer满了的话就会被丢弃,产生output drop。如果你继续调整一下左表的刻度,将会看到另外一种完全不一样的情况。
因为show interface中的输出是bit/sec,我们吧Y轴坐标调整为bit/tick
Link speed is 100 Mb/s
= 100,000,000 bits/s
= 100,000 bits/0.001 s
将X轴的的每个tick的间隔改为0.001sec:X Axis=0.001 sec ;继续把Y轴的scale改为Y axis=100,000 (bits/tick).
5, 继续拖动表格当中的滚动条,我们可以看到,在这个例子中,有一个burst流量在0.001秒之内的速率超出了100000bits, 这样就证明了看似平稳的流量其实在很小的一个时间间隙内有突发并且用来存放突发流量的buffer被沾满,从而产生了output drop。
6, 鼠标点击突发流量的顶点,我们可以看到此刻抓的包是什么包。
Span 抓包用wireshark分析的方法是分析突发流量导致output drop的一个非常有效的方法。