网页响应时间过长怎么解决的方法
网页响应时间过长怎么解决的方法,网上传的有一半解决不了问题。我挑五个最常见的说法,一个个拆。
先记住一件事:响应时间是一趟请求走了多久,不是单一原因造成的。五段里哪段最长,才决定改哪里。
「响应时间过长就是服务器不行」
服务器只是其中一段。
五段是 dns、tcp、tls、ttfb、下载。服务器只负责 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 就快了」
换 DNS 只影响第一段。
dns 那一段长,换解析服务商才有意义。
tcp、tls、ttfb 长的时候,换 DNS 一点用没有。
判据:同一时刻问两家,一家有、一家没有,才是解析的问题。
两家都有、dns 段还是长,问题在解析链路,改站点没用。
「多加点带宽就好了」
带宽只影响最后一段。
下载段长,加带宽才有用。而且要看并发。一个人测快。十个人同时下就慢。
前四段长、下载很短,加带宽等于白花钱。
这类情况九成是后端在等,去拆接口比加带宽有效。
带宽加完数字没动,就是加错地方了。
「加 CDN 一定更快」
CDN 能不能加速,看两个地址的差。
回源地址和加速地址各测一遍:加速比回源快,才有用;两个差不多,说明 CDN 没起作用。
还要看是不是所有地区都快。只有部分地区变快,那是节点选址的问题。
全都变慢,先看回源,再看缓存命中。缓存没命中,等于没加速。
两个地址各跑一轮,按地区分组比,差得多的才算起作用。
「测一次就知道问题在哪」
一次结果只能算一次采样。
一次快一次慢,你分不清是站点在抖,还是链路在抖。
很多人拿一次结果就去改配置。改完看着好,其实是赶上低谷。
判据:同一组节点、同一时段、连测三次。三次都慢,才算问题。
同时改两处,下一次测速也说不清是谁起的作用。
记录也要写时间。没时间的记录,隔天就没法对照。
现在先把那条 url 和五个数存成一行:日期、时间、节点组、五段数字。 下次再出问题,这一行就是你的证据。