某局点s9700堆叠组网跨区文件下载速率不符合预期的问题分析

发布时间:  2017-04-14 浏览次数:  156 下载次数:  1
问题描述

问题描述:

接入交换机到汇聚交换机采用千兆口聚合上连,汇聚交换机到核心交换机采用万兆口聚合上连,客户反映从办公区下载服务器文件时,下载速率为2M/s,在后面的定位过程中,将上述所有的聚合端口中只留一个端口(其他端口shutdown)上连时,再用办公区的PC从服务器区的Server上拷贝文件,速率达到11M左右,再次undo shutdown之前关断的端口后,拷贝速率仍然能够达到11M左右。即使速率为11M,客户认为也没有达到交换机最大的端口带宽(交换机最大端口带宽为1G,理论最大速率为125M左右)。拓扑如下:


处理过程

1. 现网使用一台笔记本进行挂测,先在服务器汇聚网关挂测,HTTP方式拷贝服务器10.148.26.62的文件,发现拷贝速率为21M左右,抓包分析发包瓶颈在服务器。



2.使用同样的笔记本在办公区进行挂测,发现拷贝速率为9M左右,分析数据报文,发现瓶颈同样在服务器。


3.通过流统以及抓包工具确认中间网络设备无丢包

在办公区挂测时分别在服务器汇聚网关的上行口trunk10、下行口trunk11、办公区汇聚网关的上行口trunk10、接PC测试端口0/0/12部署流量统计,发现交换机收发均没有丢包,通过wireshark抓包分析工具分析报文,也无发现报文有重传丢包现象,如有丢包重传,wireshark会有特殊颜色标示有重传。


4.通过抓包对比分析,发现在办公区拷贝比在服务器区拷贝时,每个报文交互时延增加了约0.05ms(中间经过了五跳设备),而由于服务器发送的报文每发三四个报文就要等待一次ACK,导致对时延极为敏感。

在办公区拷贝(ACK回应时间,约0.08ms)。


在服务器区拷贝(ACK回应时间,约0.03ms)。

通过抓包估算在服务器区拷贝一个周期比在办公区拷贝多约消耗2倍多的时间(按从发送三个报文开始到收到一个ACK结束算一个周期来估算),带宽速率也就降低约一半左右。

不同时延下,服务器的发包速率对比:同样的时间单位,服务器在服务区拷贝时发送报文数量要比办公区多。


5.对比同样在办公区拷贝速率比较快的服务器,直接可以达到40M左右(也就是说比同区拷贝10.148.26.62还快)

通过抓包可以看到该服务器发送约25个报文才需要等待一个ACK报文,发送缓冲区换算下来大概有36K(此为利用抓包随机计算出来的推测值,和实际缓冲区大小有一定误差),甚至超过了接收缓冲区,因此发送较快,且对时延的敏感性远远小于10.148.26.62服务器。


服务器每0.8ms发送报文数量也远远大于10.148.26.62


6.最后通过使用专业的FTP server服务软件,发现速率可以达到70M,更换为win7系统之后,速率可以达到满带宽,因此可以证明,速率限制的主要瓶颈在于服务器和客户端的报文发送机制。



根因

服务器发送缓冲区过小,导致TCP报文交互过于频繁,速率降低,此外过小的报文发送缓冲区增大了对时延的敏感性,会进一步降低文件的拷贝速率。

解决方案

优化服务器文件发送方式,比如修改服务器注册表,把发送缓冲区调大,或者使用专业的软件搭建FTP或者HTTP服务器。

针对之前下载速率慢的问题,建议对网络进行监控,如果再有此类问题,可以参考以上定位方法,在拷贝文件的同时使用wireshark工具进行抓包,进而判断导致速率降低的原因,如果是由丢包导致,则可在交换机沿路部署流量统计确认丢包节点。

END