访问阿里云上的网站或接口变慢,原因往往不止一个。可能出在用户本地网络,可能出在域名解析,也可能是云上资源的规格或配置跟不上。没有顺序地乱试,很容易把时间耗在无关的环节上。下面按从外到内的顺序,给出一套能直接照着做的排查方法,文中穿插三个案例。

一、先判断慢在哪一段
改配置之前,先用数据确定慢的位置。下面几个指标可以把一次请求拆成几段来看:
- DNS 解析耗时:用 dig 域名 或 nslookup 域名 看解析结果和响应时间。解析超过 200 毫秒就值得留意。
- TCP 建连耗时:用 curl -w “%{time_connect}” 查看。建连慢,多半是网络路径或服务端负载有问题。
- TLS 握手耗时:用 curl -w “%{time_appconnect}” 查看。握手慢常见于证书链过长,或服务端 CPU 比较紧张。
- 首字节时间(TTFB):对应 %{time_starttransfer}。这个值偏高,说明服务端处理请求慢,网络层基本可以排除。
一条 curl 命令就能把这几段拆开看,比凭感觉猜要靠谱得多。
二、网络路径问题
建连时间明显偏高时,再看路由。mtr -rwc 100 目标IP 能同时显示每一跳的丢包率和延迟。常见的情况有两种:
- 用户所在地区的运营商与阿里云某个出口之间有拥塞。表现为某一跳之后延迟突然升高,而且后面几跳的丢包率一直下不来。
- 跨境访问。境外用户访问境内节点,或境内用户访问部署在境外的资源,链路本身延迟就高,要靠选地域来解决。
这类路径问题,云上用户通常没法直接修。能做的是换地域,或者接入加速服务,绕开一部分链路。
三、地域选择与内外网地址
不少”访问慢”其实是部署时定下来的。用户主要在华东,服务却放在华北或海外,每个请求都要多跑一段距离。把资源放到离主要用户最近的地域,往往是性价比最高的一步。
还有个容易漏掉的细节:地址选对了没有。同一地域内,ECS 访问 OSS、RDS 或 Redis 时,应当用内网地址,也就是带 internal 的 Endpoint,而不是公网地址。走公网不只是延迟高,还会占用公网带宽,并产生流量费用。
四、实例本身的瓶颈
网络和解析都正常,TTFB 却很高,问题大概率在实例上。可以先看这几项:
- CPU 使用率:长期高于 80% 时,请求会排队。
- 内存与 Swap:Swap 交换频繁,响应时间会成倍往上涨。
- 公网带宽:固定带宽的实例,峰值超过上限后会被限速,表现为下载慢、页面卡。
- 连接数与线程池:数据库连接池或应用线程池开得太小,请求会卡在应用层排队。
这些曲线可以在云监控(CloudMonitor)里看。把时间范围调到问题出现的那段,再和访问日志对一下,看两者是不是同步出现的。
五、三个典型案例
案例一:跨地域访问对象存储
某内容站点的读者主要在华东,图片却存在华北地域的 OSS 存储桶里。页面 TTFB 正常,图片平均加载时间超过 1.5 秒。排查时发现,图片请求要跨越大半个中国的链路,TLS 握手次数也偏多。团队把存储桶迁到华东,并在 OSS 前配置 CDN 回源,图片平均加载时间降到 300 毫秒左右。迁移前要先备份数据,DNS 切换最好放在低峰期,免得影响正在访问的用户。
案例二:应用误用公网地址连接数据库
某电商后台部署在华东的 ECS 上,数据库是同地域的 RDS。配置文件里填的却是公网连接地址,每次查询都要绕一圈公网。高峰期,订单列表接口的响应时间从 80 毫秒涨到 900 毫秒。改成内网地址后,接口恢复正常,公网流量费用也明显下降。这类问题比较隐蔽:网络是通的,应用也能跑,只是慢。遇到这种情况,先检查连接字符串。
案例三:公网带宽被打满
某企业的文件下载服务跑在一台 ECS 上,公网带宽设为 5 Mbps。业务量上来以后,每到上班高峰,下载速度骤降到几十 KB/s。监控显示公网出方向流量长期贴着上限。团队把计费方式调整为按流量计费,并设置了合理的带宽峰值,同时把大文件迁到 OSS,通过 CDN 分发。下载速度恢复,成本也更好预估。
六、排查清单
- 用 curl 分段计时,确定慢在 DNS、建连、握手,还是服务端处理。
- 用 mtr 看路由,判断是运营商拥塞,还是跨境链路的问题。
- 对照用户分布,确认资源所在地域是否合适。
- 检查应用配置,同地域的服务之间是否用了内网地址。
- 查看 CPU、内存、公网带宽和连接数的监控曲线,和访问高峰时段对齐。
- 用户分布广的话,考虑接入 CDN 或全球加速服务。
多数阿里云访问慢的问题,按这六步走一遍基本能找到原因。排查时每次只改一个变量,并记下修改前后的耗时。这样才能确认到底是哪一处改动起了作用。