测速这事儿最容易欺骗人的就是那条曲线:同一台机器,你上午点开秒开,晚上刷半天白屏,换个手机又好了。多数人第一反应是「服务器不行了」,然后急着去升级配置。先别急。网站测速忽快忽慢问题出在线路还是机器,这两段得分开看,因为排查手法完全不一样,混着查只能白折腾半天,最后钱花了,问题还在。

网站测速忽快忽慢问题出在线路还是机器,先把两段路拆开
一次访问其实走了两段完全不同的路。第一段是从访客浏览器到机房门口,中间经过运营商、骨干网,可能还夹着一层 CDN 节点,这段你摸不着,只能靠测。第二段是进了机房之后,Web 服务器、PHP-FPM、数据库、磁盘这一串,这段你能登上去看。抖动要么在门外,要么在门里,很少两边同时出问题。分辨的办法很土但管用:找几个不同城市、不同运营商的人,或者用在线测速平台,在同一时间点你的站。全国一片慢,八成在机器或出口;只有某一家运营商、某一个省慢,那基本是路上堵了。
全国节点同时变慢,先看机器负载
所有节点表现都差,那就先看机器本身。top 里 load average 高不高,%wa 也就是 IO 等待是不是居高不下;这个数要是长期偏高,磁盘在拖后腿,CPU 再闲也没用。还有 steal 时间,在共享型虚拟主机和超卖的云主机上挺常见,别人跑满你就跟着卡,这类只能靠换实例规格或者换宿主机解决。内存不够开始吃 swap 的时候,网站会进入一种奇怪状态:缓存热的时候飞快,缓存一被挤掉就卡死,表现出来就是随机几个页面转圈。数据库更容易被忽略,一条没走索引的查询平时看不出问题,访问量一上来就把连接池占满,翻慢查询日志比瞎猜有用得多。
只有某地慢,先别急着骂服务器,去看 DNS 和 CDN
同样是双线机房,有的地方解析到电信,有的地方解析到联通,智能 DNS 判断失误就会把人指到更远的那条路上。CDN 也一样,某个边缘节点出毛病或者回源超时,只有那一片用户受影响。这类慢有个特征:刷新几下有时又好了,因为命中的节点换了。查法是本地 dig 一下域名,看看不同公共 DNS 返回的 IP 是不是你预期里的那几个。IP 忽而 A 机房忽而 B 机房,说明调度在动,不一定坏,但预期里的节点都得测一遍,别只测自己办公室这一条线。
服务器上 curl 很快,外网一测就慢
登到服务器上 curl 自己的域名,几毫秒就回来了,说明程序和机器都没大问题,问题在出口带宽、防火墙策略或者机房上联。带宽跑满最常见:图片没压缩、附件直接放本地、被采集或者被刷,出口一旦打满,所有请求一起排队,你看到的曲线就是一波一波的。去看网卡流量图,别只信网站后台那个「带宽使用」,那个数字经常滞后,参考价值有限。
测速工具本身也会给出误导的结果
浏览器里那个「加载完成」的时间,经常被第三方资源绑架:统计代码、字体、广告位、评论区,任何一个外部域响应慢,整页时间就难看,可跟你服务器一点关系都没有。TTFB 才是自己该承担的部分。还有个常见误区:ping 通不代表网页快,ping 只到网络层,HTTP 还得算 TLS 握手、首字节、渲染。测速平台的节点位置也要看一眼,拿海外节点去测一个只服务本地的站,慢是应该的,慢不慢没意义。
排查顺序不要弄反,照这一张单子走
顺序错了越查越乱。我通常这么走:第一固定变量,同一时间、同一页面、同一路径测;第二多地 ping 加 MTR,看丢包出在哪一跳;第三盯 TTFB,把服务器处理和网络传输分开;第四登机器看 load、IO 等待、swap 用量;第五翻慢查询日志和访问日志里那几个耗时接口;第六才回头找线路商问情况。这套顺序的好处是每一步都能排除一大块嫌疑,不至于一上来就换服务器,换完发现还在抖。
该换机器还是该换线路,看这两组信号
简单粗暴的判断:CPU 长期高位、IO 等待高、内存经常见底,三样占了两样,那就优化程序或者升配置,线路再好也救不回来。反过来,机器闲得很,load 低、TTFB 也低,就是晚高峰跨网访问慢,别再折腾配置了,该考虑多线、BGP 或者加 CDN。还有一类是机房自己上联拥塞,这种只能换机房或加节点,工单里把线路情况问清楚,具体以服务商或官方页面说明为准,别听口头承诺。
最后留一句提醒:别同时动两样东西。又换线路又改程序,之后不慢了你也说不清是哪一步起的作用,下次再犯还是抓瞎。一次只动一个变量,测两天再下结论,慢是慢了点,但结论靠得住。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!