「打开慢,是不是内存不够,还是 cpu 太差?」

打开网页慢是内存还是cpu,先别猜。这两样只能在五段里的一段体现,其他四段跟它们没关系。下面这张表先分一次。

现象 指向 先看什么
ttfb 长、下载短服务端在算进程、内存、cpu、数据库
ttfb 正常、下载长体积与带宽总字节数、请求数
前三段长解析与线路dns、tcp、tls
五段都短还慢本机渲染扩展、第三方脚本

ttfb 长,才轮到怀疑内存和 cpu

<figure><img src="https://image.bt.cn/20261114/c498960a8b69b207080cc06e2425bab4.svg" alt="五段耗时各占多少,ttfb 占了几成" loading="lazy" width="1200" /><figcaption>先看 ttfb 占几成,再决定动内存还是 cpu</figcaption></figure>

ttfb 从请求发完算到收到第一个字节。这一段长,说明请求到了、服务器没在时限内回话。

判据是 ttfb 占五段之和的一半以上,同时下载段很短。两条同时成立,再去翻内存和 cpu。一半是经验线。

内存不够,通常不会只表现为慢

内存吃紧往往先表现在别处:进程被系统杀掉、偶发 5xx、重启后短暂恢复。容器里则是实例被重启或 OOM。

判据是同一时段有没有 5xx,或者进程有没有重启记录。有,才谈得上内存。

只看「慢」这一条,分不出是内存还是 cpu。这一点最容易看错。

用宝塔拨测的网站测速跑一次,五段耗时是分开列的,先看最长那一段,再看它占几成。

cpu 打满,看的是慢随并发一起上升

cpu 吃紧的典型是:低峰正常、高峰变慢,而且慢得很平均,每个请求都慢一点。

判据是低峰和高峰各跑一次,两次的 ttfb 差多少。差出一倍以上,才像 cpu。一倍是经验线。

那么先看并发数和进程数,再看单请求耗时。

前三段长、下载长,都跟内存 cpu 无关

dns 长是问路慢,tcp 长是握手慢,tls 长是协商慢。下载长是体积和带宽,也不是这两样。

判据是这三段占了多数,或者下载段占了多数。占了,改内存和 cpu 一点用没有。

先看 ttfb 占几成,再决定要不要动内存和 cpu;前三段长或下载长,就别在这两样上花时间。