开发者社区> 阿里云支持与服务> 正文

ECS资源下载慢 ,如何分析定位?

简介: 我们来结合最近发生的一个真实的用户案例——ECS上的资源下载速度被限,来看看针对资源下载慢的问题,如何根据现有的情况一步步进行分析和定位。
+关注继续查看

e62e3e198532ba850bd422c71e50671a66e883f6

问题背景

4月中旬,收到某用户反馈,从华北2地域的ECS下载华东1的ECS上的资源,下载速度被限制为2M,此问题会对用户的业务产生极大的影响,涉及到企业的大量业务订单,问题非常紧急。

收到用户反馈后我们立即根据现有的情况进行分析。

分析思路

下载速度的影响因素有哪些?

1、网络延迟;

2、客户端&服务端的出入带宽限制;

3、运营商中间链路限制(有些情况下就算ping延迟低,但也可能看到TCP或UDP协议的传输过程中被运营商认为的加入延迟来限速);

4、客户端的多线程行为;

5、服务端和客户端的OS层面的TCP协议层面的接受发送窗口(Auto Tuning)的相关配置,Selective ACK协议的行为;

注:

TCP协议层面的接受发送窗口(Auto Tuning)的相关配置,如下:

TCP 滑动窗口(TCP Windowing)大小,窗口缩放因子(Window Scaling)的值。

分析过程

测试网络延迟

华东1与华北2之间互ping延迟为30ms左右。

d01f9d653d209a19d15766d2f37de20983ccd9d0

检查带宽限制

检查客户端与服务端的ECS的出入带宽均没有到达上限。

测试使用多线程下载

问题是ECS限制了2M的下载速度,为了佐证ECS下载速度没有限制,测试使用mwget,多线程下载工具下载,轻松跑到30M左右。

说明ECS本身网络是没有限制的。

抓包分析报文

三次握手的过程如下(下图为Server的抓包)

这里也走了一些歪路 ,查看ACK的的交互有30ms左右的延迟,就定位为延迟导致的网络延迟。

如在报文完整的传输过程中,可以看到每隔30-50个报文就会出现延迟30ms的情况。

但是我们进行了对比测试,从上海,深圳等测试,

如:ping延迟小的情况下,有出现下载慢,而ping延迟大,有出现下载快的情况。于是思考延迟只是这个问题出现的一方面的原因。故继续分析报文。

b3cd5d319571ace738179d35f202c4351ec7f621

考虑是否有网络限速的可能

查看报文出现30ms左右延迟的报文,均是ACK的报文。不太像网络限速。

d42c3ec7dff32e4ed25a467af2f79525a6b4e4db

6a0a32cfe865abdfc00b2460af9f619ef1a7e735

TCP 参数检查

如上,单线程最多能够下载2M左右,但是多线程能够跑很高;判断可能是TCP参数导致的问题。

多线程与单线程下载的区别是:
 
多线程是使用多个TCP流进行下载。
 
而单线程只有一个TCP流。

从这个角度分析TCP 三次握手信息:

SYN:
0f6bf52a05f3ca0ff2b3139ad01fc9e83dad4878
SYN,ACK 
38f78934ec644bb4ec0cb335819c46c49063bd2a

ACK

4b6f7e93890e756c12a852033b2fd3e6f2093bd1

三次握手完成后的结果为:没有启动窗口缩放功能。

window滑动窗口的大小是固定的。

查看系统配置:

cat /proc/sys/net/ipv4/tcp_window_scaling

查看确实没有开启。

8530b646984ff60ce49c97c2b21e7a7cf49940a8
输入:

echo 1 >  /proc/sys/net/ipv4/tcp_window_scaling

修改为1后下载能够上升到20-30M左右,符合预期。

 adfb4b00794a9a724b5ac3b7ca0752df55e3c23b

总结

1、如分析思路中描述的内容,影响下载速度的因素有很多,在定位时需要全部的内容都分析,然后找到最影响传输速度的项,针对性的进行优化。

2、本案例中需要了解:TCP 滑动窗口(TCP Windowing)、窗口缩放因子(Window Scaling)这2个概念的含义。

注意:TCP Window Scaling仅在TCP连接的双方都开启时才真正有效

3、这个案例的原因为没有开启Window Scaling导致传输速度不理想,属于TCP传输优化内容。


专家介绍

枫凡,目前在阿里云从事ECS产品的技术支持,专注于云计算相关的安全问题以及网络问题。坚信:“不忘初心,方得始终”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
性能测试工具选择策略——仿真度对比测评分析报告
基于 AI 的软件自动化测试工具的特征介绍
774 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18592 0
windows管理员利器之用Log Parser Studio分析IIS日志(附逐浪CMS官方命令集)
原文:windows管理员利器之用Log Parser Studio分析IIS日志(附逐浪CMS官方命令集) Log Parser Studio是一个强大的IIS图形分析工具,值得推荐。
1627 0
纯C实现的词法分析和lex实现的词法分析的对比
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/50523336 (一):写在前面 在上面的学习当中,我们通过简单的lex例子,进一步扩展lex例子,通过和yacc的融合来进行简单英语语法分析。
881 0
ECS支持跨地域跨资源类型的标签(TAG)操作
ECS资源可以使用标签进行分组管理,如何快速将自己多地域/多种类型的资源都打上标签(TAG)呢?
733 0
+关注
阿里云支持与服务
分享阿里云支持与服务团队最佳实践、经典案例与故障排查。
197
文章
4855
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载