一套优化全上,结果没变

有次接手一个慢站,我把能做的都做了:开压缩、加缓存、上 CDN、升配置。忙了两天,用户反馈还是慢。

回头一看,问题出在数据库慢查询,TTFB 一直很高。前面那些优化,一个都没打在这个点上。那次之后我再也不先动手了。

先测,再决定

用宝塔拨测的网站测速跑多地区多运营商节点,拿到状态码和五段耗时。

状态码先看,5xx 和 4xx 要先解决,那不是速度问题,别把错误当成慢。

五段里,哪一段占的比例最大,优化方向就在哪一段。别凭经验猜,经验经常错。总时长只说明慢了,不说明慢在哪,这是五段存在的意义。

每一段对应什么

DNS 慢:查解析服务商、记录配置、TTL,以及有没有多余的 CNAME 层级。

TCP 慢:看线路质量、丢包、安全组和端口。这一段跟程序没关系,改代码没用。

TLS 慢:看证书链、协议版本、会话复用。证书链太长,握手会多花时间。

TTFB 慢:看后端。慢查询、缓存未命中、外部接口超时、锁等待,都在这段。

下载慢:看资源体积、压缩、CDN 命中率,以及出口带宽。每段只挑两三个动作,别贪多。

为什么很多优化没效果

优化错层,是最常见的原因。给下载段做压缩,救不了 TTFB。

还有一种是同时改太多,最后不知道哪一项起作用,下次出问题也没法复现。

另外一种,是只在本地测。你改完本地快了,跨运营商、跨地区的用户未必有变化。还有一种:改了没生效,配置压根没加载。

节点分布决定改哪一层

所有节点都慢,偏源站和出口,先看带宽和负载。

只有某家运营商慢,偏互联,改服务器配置没用。

只有某个地区慢,偏区域路由或者 CDN 覆盖。

用平均、最快、最慢一起看,能判断是普遍慢,还是被个别节点拖累。分组结果能省掉一半猜测。

复测才算完成

改完用同一批节点复测,对比同一段的耗时,而不是看总时长。

连测三次,稳定下降才算数。只降一次,可能只是那一轮网络恰好很好,别自我感动。

如果改完某一段降了、另一段涨了,说明问题只是被挪了位置,还没真正结束。

网页慢不是一种病,是五段里某一段出了问题。先定位,再动手,最后复测,这个顺序比任何优化技巧都值钱。记录改动时间,和曲线对齐,复盘时能说清楚。优化是投资,要看回报,别把钱花在看不见的地方。

按段来,慢的问题其实没那么玄。