问题现象
使用测试仪连接交换机的两个端口进行了吞吐量、时延测试。

第三方机构测试我司设备发现部分设备转发时延过大,超过2ms,而同样情况下用PC ping设备则小于1ms,而且现场测试人员反馈,同一条链路在VLAN 1内测试无问题,在其他业务VLAN测试则存在此时延过大的现象。
告警信息
携带专业的测试设备Spirent TestCenter现场选取单台设备转发测试:

没有复现现场的高延时。
携带专业的测试设备Spirent TestCenter现场多台设备间跨链路测试:

测试结果:
a、按照现场的测试方法在业务vlan 25内测试的时候发现高延时。
b、按照现场的测试方法在业务vlan 1内测试的时候没有发现高延时。
对比这两个结果,可以发现a、b两种情况下,均在吞吐量和同样链路下,仅仅VLAN不同,却得到了不同的测试结果,在业务VLAN25内,存在丢包和时延过大情况,而在VLAN1内测试结果却是正常的。 为何会有这个差异呢?
这是因为跨设备打流量的时候,中间经过了Trunk链路,而Trunk链路的缺省PVID是1,报文转发出去的时候,不会带VLAN1的tag,而当在业务VLAN25内转发的流量则需要带VLAN Tag转发出去,也就是在测试仪发出流量的基础上增加了报文VLAN Tag的开销,这个时候实际流量已经超过了端口的吞吐量,所以测试结果中出现丢包和时延过大的情况。这个测试结果本身是正常的,在这种超过端口吞吐量的情形下必然会导致丢包和延时过大。
C、为了进一步验证我们从原理上的推断,我们进行了第三个测试,将设备的PVID修改为25,测试VLAN仍然是VLAN 25后测试延时很小。
从这个测试结果来看,转发时延正常,这个跟测试项a唯一的区别,就相当于去掉了VLAN Tag的开销。
d、带业务设备测试设备吞吐量情况下的延时时会出现相关较高的延时。
从这个测试结果来看,设备存在延时大和丢包情况,主要原因在于本身链路上承载了业务数据,虽然数据量不大,但在有业务背景流量的情况下,再去打100%负载流量进行测试,必然会导致时延过大现象的产生。
解决办法
根据我们现场测试和分析,第三方测试转发时延过大的原因主要是没有考虑VLAN tag的开销以及存在链路业务背景流量的情况,实际其转发时延大的测试结果都是在超过设备吞吐量的情况下得出的,因此建议第三方重新对结果进行测试,测试时应避免背景流量以及协议开销等其他影响。