对象存储 通过外网访问 COS 文件缓慢

这篇分析COS访问缓慢或超时的原因,包括跨境访问、本地机器负载过高,并提供排查步骤:检查跨境访问(推荐使用全球加速或同区域部署)、检查本地CPU/内存/带宽,以及按场景(浏览器、移动端、Linux)进行ping、telnet、MTR、nslookup和抓包测试。 跨境访问:推荐同区域部署或使用全球加速域名。 本地配置:检查CPU、内存和外网带宽负载。 场景排查:通过ping、telnet、MTR、nslookup和抓。

相关产品
对象存储 产品页,含版本规格、价格与购买入口。

一、现象描述

访问 COS 资源时,耗时比较久,甚至出现超时,无法访问的情况。

二、可能原因

·涉及到跨境网络延迟比较慢,无法保证网络质量,例如,你在日本访问北京的存储桶这种跨境访问场景。

·本地的机器负载满了,例如 CPU、内存以及外网带宽。

·其他原因。

三、检查是否跨境访问

推荐方案:

1. 如果业务在境内,建议在境内部署存储桶,如果业务在境外,建议部署境外的存储桶。(推荐)

2. 可以使用 COS 的全球加速域名。(这个功能是主要优化跨境访问的问题,有额外费用。如果不涉及跨境访问,不建议使用这个域名)。

关于全球加速功能介绍和费用说明,请参见 全球加速概述。建议使用前请先提交工单咨询腾讯云工程师,再确认是否使用。

四、检查本地机器配置

每个机器的配置可能不一样,建议检查电脑 CPU、内存以及外网带宽的负载。下面提供了腾讯云云服务器 Windows 的环境排查文档:(Windows 大体都类似,可以参考)

·检查 CPU 和内存

·检查带宽

五、根据使用场景进行检查

按照以下场景进行操作,如果在操作中有遇到问题,请先提交工单沟通。

六、场景1:Windows、Mac 或者其他界面化系统的浏览器访问 COS 资源缓慢

1. 访问 https://ping.huatuo.qq.com/ 这个网站,输入 COS 域名进行检测(不用携带协议以及具体的资源路径,可直接进行域名测试)。

这里可以直接确认下,本地的 IP 和 COS 给的 IP 是否是同一个运营商(可以直接把 IP 输入到百度搜索栏,然后按回车键,即可查看),例如都是电信或者联通运营商。
如果跨网络了(例如本地是电信,解析出来的是移动或者其他运营商的 IP),那就是解析问题,需要将本地的 DNS 修改为自己网络运营商提供的 DNS。

2. 执行 telnet 命令测试域名的80端口是否连通。

3. 操作命令:

telnet examplebucket-1250000000.cos.ap-beijing.myqcloud.com 80

注意:说明:

注意:关于 telnet 命令的安装方法,请自行查找相关资料。

4. 如果上述没有问题,再进行 MTR 网络测试,可参见 网络排查工具 MTR 介绍文档。

4.1 安装 MTR

4.2 执行 mtr COS 域名,如下所示:

mtr examplebucket-1250000000.cos.ap-beijing.myqcloud.com


然后可以查看 Host 这一列,这些 IP 就是请求网络链路,对这些 IP 地址查看来源。
例如,在北京访问重庆的存储桶,那么这里的 IP 就不能去其他地方,例如你发现中间一个 IP 跑到了中国香港,这就是有问题的。

5. 执行 nslookup 命令,查看域名解析是否正常。

nslookup examplebucket-1250000000.cos.ap-beijing.myqcloud.com

根据解析到的 IP 和本地的 IP 对比,确认下解析到的 IP 和本地的 IP 是否为同一个地域和同一个运营商。

6. 抓包看下(在访问缓慢的环境下)

·Windows 抓包

·Mac 抓包(比较方便)

执行 tcpdump 命令,如下所示:

tcpdump host examplebucket-1250000000.cos.ap-beijing.myqcloud.com -w test.cap

打开另外的窗口请求访问缓慢的资源,完成后中断(Ctrl+C)抓包,test.cap 文件就是抓包文件。

然后提交工单,由腾讯云工程师协助排查。在提交工单时,请将上面你所做的网络测试信息以及截图一并提供,以便快速定位问题。

七、场景2:移动端浏览器访问 COS 资源缓慢

1. 首先确认下访问慢的资源 URL,单独访问这个资源看看速度是否正常。

2. 同时,再访问一下其他网站是否正常(例如百度等)。

3. 换一个网络环境,例如连接其他 Wi-Fi 网络。

经过上述三步,如果确定只有 COS 资源访问缓慢,其他网站的资源访问正常。那么接下来可以在电脑端连接和手机一样的网络环境(例如连接同样的 Wi-Fi,或者电脑连接手机4G网络),再测试访问 COS 资源。

(1)如果电脑端测试复现,可以参考上述 场景1 进行排查。

(2)如果电脑端也访问正常,只有移动端有问题,可以对移动端进行网络测试操作,操作方法可参见 场景1中的第1步。

(3)测试网络路由,使用手机测试 IP 路由信息,可直接访问 http://www.webkaka.com/Tracert.aspx,输入 COS 域名进行测试。

在 IP 地址这一列,这些 IP 就是请求网络链路,对这些 IP 地址查看来源。例如,在北京访问重庆的存储桶,那么这里的 IP 不会出现中国香港 IP,否则是有问题的。

(4)如果上述没有问题,可进行抓包排查,可参见 抓包教程。
然后提交工单,由腾讯云工程师协助排查。在提交工单时,请将上面你所做的网络测试信息以及截图一并提供,以便快速定位问题。

八、场景3:黑窗口 Linux 机器访问 COS 资源缓慢

1. 测试下域名的80端口是否连通,操作命令如下:

telnet examplebucket-1250000000.cos.ap-beijing.myqcloud.com 80


若不连通,对百度网站进行测试,请将上述的 COS 域名换为 www.baidu.com。查看百度是否可以连通,确认下本地网络环境。

2. 执行 nslookup 命令,查看域名解析是否正常。

nslookup examplebucket-1250000000.cos.ap-hongkong.myqcloud.com


这里可以直接确认下,本地的 IP 和 COS 给的 IP 是否是同一个运营商(可以直接把 IP 输入到百度搜索栏,然后按回车键,即可查看),例如都是电信或者联通运营商。

3. 进行 MTR 网络测试,具体可参见 场景1中的第3步。

4. 使用 tcpdump 进行抓包,可参见 抓包教程。
执行 tcpdump 命令,如下所示:

tcpdump host examplebucket-1250000000.cos.ap-hongkong.myqcloud.com -w test.cap

在另外的窗口请求访问缓慢的资源,完毕之后中断(Ctrl+C)抓包,test.cap 文件就是抓包文件。

然后提交工单,由腾讯云工程师协助排查。在提交工单时,请将上面你所做的网络测试信息以及截图一并提供,以便快速定位问题。

赞 (0)
上一篇 5天前
下一篇 5天前