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产品的技术支持,专注于云计算相关的安全问题以及网络问题。坚信:“不忘初心,方得始终”

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 弹性计算 缓存
阿里云服务器ECS经济型、通用算力、计算型、通用和内存型选购指南及使用场景分析
本文详细解析阿里云ECS服务器的经济型、通用算力型、计算型、通用型和内存型实例的区别及适用场景,涵盖性能特点、配置比例与实际应用,助你根据业务需求精准选型,提升资源利用率并降低成本。
312 3
|
4月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
212 18
|
6月前
|
缓存 人工智能 架构师
释放数据潜力:利用 MCP 资源让大模型读懂你的服务器
MCP(Model Control Protocol)资源系统是将服务器数据暴露给客户端的核心机制,支持文本和二进制两种类型资源。资源通过唯一URI标识,客户端可通过资源列表或模板发现资源,并使用`resources/read`接口读取内容。MCP还支持资源实时更新通知及订阅机制,确保动态数据的及时性。实现时需遵循最佳实践,如清晰命名、设置MIME类型和缓存策略,同时注重安全性,包括访问控制、路径清理和速率限制等。提供的示例代码展示了如何用JavaScript和Python实现资源支持。
715 80
|
6月前
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
1299 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
7月前
|
自然语言处理 安全 开发工具
分享一个纯净无广、原版操作系统、开发人员工具、服务器等资源免费下载的网站
分享一个纯净无广、原版操作系统、开发人员工具、服务器等资源免费下载的网站
299 4
|
8月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
8月前
|
机器学习/深度学习 运维 资源调度
深度学习在资源利用率优化中的应用:让服务器更聪明
深度学习在资源利用率优化中的应用:让服务器更聪明
312 6
|
9月前
|
弹性计算 运维 Kubernetes
使用ACK Edge统一管理多地域的ECS资源
本文介绍如何使用ACK Edge来管理分布在多个地域的ECS资源。
|
8月前
|
弹性计算 运维 Kubernetes
使用ACK Edge统一管理多地域的ECS资源
使用ACK Edge统一管理多地域的ECS资源
|
10月前
|
安全 云计算
服务器系统资源不足怎么办
服务器系统资源不足怎么办
526 4

热门文章

最新文章