开发者社区> 问答> 正文

服务器上下载文件非常慢

问题描述:
用户服务器115.29.203.108,用户反馈从服务器上下载文件非常慢,无论是用IIS还是第三方FTP,测试下来从ECS出的流量只能达到10KB/s左右,抓包发现有非常多的重传包。
解决过程:
检查问题发生情况下的网络包,实际上,我们测试发现,不仅仅是FTP,HTTP协议,如果使用文件共享协议也会发现同样的情况,传输异常缓慢。如下的服务器端的包是HTTP情况抓取,客户端的包是文件共享访问抓取,两者虽然不是同情况抓取,但是原因是相同,可以作为参考依据。
服务器端网络包:
我们发现所有从ECS服务器115.29.203.108发送的每个网络包均会重传

Frame 18259: ECS发送5840字节网络包
Frame 18281: 在没有得到客户端响应的0.3秒后,ECS重传5840字节的第一部分的1460字节网络包,后续会重发所有相关网络包。
观察后续的所有传输,均可以发现如上的行为发生。
在客户端抓包:

注: 客户端是在文件共享访问情况下抓取,可以发现所有服务器的包,在到达客户端后,客户端在0.3秒内没有发送ACK,导致服务器重传。


Frame 324-327:服务器发送数据包给客户端
Frame 453: ECS服务器在0.3秒超时后重新发送Frame324
结论:
从如上信息来看,我们更加怀疑是客户端问题,毕竟服务器已经发送数据包,客户端0.3秒没有正常的ACK响应。但是考虑到仅有该服务器有问题,所以应该是服务器的某些TCP/IP参数配置导致与客户端之间协商问题。
尤其是我们发现服务器会发送5840字节的大包,说明IP task offload功能启用,而之前我们遇到过该功能启用后,由于网卡驱动导致TCP传输过程出现问题的情况。
后续对比正常的注册表与客户注册表,发现客户进行了大量的注册表更改,启用了Task Offload功能,同时更改了许多默认的TCP参数。

在禁用Task Offload功能后,问题解决。


如下是正常情况下抓包:

没有重传存在,ECS发送的网络包的每个包均为1460字节,客户端正常ACK


展开
收起
zhangmeng 2016-01-19 15:51:45 15909 0
2 条回答
写回答
取消 提交回答
  • Re服务器上下载文件非常慢
    抓包工具呢???
    2016-01-21 10:06:52
    赞同 展开评论 打赏
  • 码农|Coder| Pythonista
    感谢分享!
    2016-01-19 19:14:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载