最近在使用Wordpress过程中突然出现了TTFB时间长的问题,主要是前台,之前一直都是正常的,经过一大堆坑最后排查出来主要是插件的坑,同时也有CDN的锅。那下面大概梳理下排查过程,有同样问题的可以看看。

什么是TTFB?

TTFB (Time To First Byte),是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了 TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。

TTFB 时间多长算长?

这个根据服务器情况,大部分服务器的TTFB基本在50ms,一般个人博客大概看了下普遍在150ms到500ms左右,如果你到了1s以上那肯定是高了。

Wordpress TTFB时间长的原因

有篇老外的翻译大概是这么说的大部分TTFB时间长的原因主要是因为CDN,其次是插件或者主题问题,最后是数据库读取次数。

Wordpress TTFB时间长解决办法

Wordpress作为一个相对成熟的程序,所以不像自己开发那样原因多,基本上都上面几个问题产生。

首先进行排查,第一个要做的是关掉CDN

虽然很多网站上介绍用CDN来降低TTFB,但实际使用的时候发现问题就是CDN命中情况下TTFB可能只有50ms,如果不命中往往比本身服务器的TTFB时间还长,有时候高达2s以上。

实际跟你网站访问情况有关系,如果你还是个小站点,很多资源是不会分配到节点而是直接回源,当然也跟各个CDN服务商的机制有关,自行查看命中率吧。

其次关闭插件,切换默认主题

插件是否冲突,主题是否更新及时,都可能引起TTFB过高,最近一次TTFB过高就是使用了一个mip的sitemap插件导致的,这个时候可以依次停用插件进行排查。

最后开启redis或者memcached等数据库缓存插件

主要是用来降低数据库读取次数,可以在footer.php中加入<?php echo get_num_queries(); ?> 次查询操作 耗时 <?php timer_stop(3); ?> 秒来实时查看自己的数据库查询次数和耗时。

这样排查下来,基本可以让自己的TTFB回到正常状态。

最后修改:2018 年 06 月 14 日 07 : 10 PM