国外网站打开慢怎么解决方法
国外网站打开慢怎么解决方法?搜一圈,答案多是「国际带宽不够,忍忍」。
我一开始也这么以为。后来测出来,慢只慢在一段,其他四段都正常。
五段耗时要分开看:解析、连接、握手、等首字节、下载。
| 看哪个数 | 怎么读 | 这一类常见在哪 |
|---|---|---|
dns | 接近 total | 本地递归离得远 |
conn 减 dns | 这一段最长 | 出国链路与路由 |
tls 减 conn | 这一段最长 | 证书链与握手次数 |
ttfb 减 tls | 这一段最长 | 后端与回源 |
total 减 ttfb | 这一段最长 | 页面体积与静态资源 |
慢在解析还是慢在下载,怎么看得出?
先跑一条命令,把五段分开:
`` curl -o /dev/null -s -w 'dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://国外站点 ``
跑两遍(同一小时内),取数值稳定的那一次。两遍差得多,就先别下结论。
再看 dns 是不是占了大头。
它接近 total:整趟都耗在解析上,后面几段再快也没用。
这时候换一家 DNS 再跑一次,看 dns 有没有明显降。
dns 很小、total 减 ttfb 很大:慢在下载,先看图片和第三方脚本。
一页几百 KB 和几 MB,在国内不明显,出国就被放大。所以先压图片。
只有自己这儿慢,还用不用管服务器?
不用先动服务器。
先分清是不是只有自己这儿慢:用宝塔拨测的网站测速跑多地区节点。
各地都慢、数值接近,说明是站点侧的事;只有国内慢、国外节点正常,那就是这条路的事。
这一步能省掉一轮白改。
本地能做的先做:换一条线路试、关掉代理试、换一台机器试。
三样都试过还是慢,就不是你这一台的事了。
换了线路还慢,问题在站点这一侧吗?
不一定。
换线路之后,conn 降下来了、ttfb 还是长,那就多半在等后端。要确定,得同一时刻和另一个地区比同一段。
换线路之后五段都没改善,才怀疑站点。
还有一种:换线路之后 total 变短了,但用户还说慢。那多半不是这条链路的事,是页面本身重。
判断依据只有一条:同一时刻,两地测同一页,比同一段。
本地正常、外地慢:这条链路的事。
两地都慢、且慢在同一段:站点侧的事。
分不清的时候,先固定一个变量:同一台机器、同一个页面、间隔一分钟,各测两次,只换地区。
我的取舍是:只在同一时刻比两地的同一段,别拿昨天和今天比。时间不一样,结论就不可比。
出国这一段还有个坑:白天和晚上的路由不一样。早上测一次正常,晚上再测就慢,这不是站点变了。
所以要比,就在同一个小时里比完。跨小时的对比,我不会拿来做结论。
测完把五个数抄下来。下次再慢,先比这两份数,看是哪一段又变长了。