WordPress 刚刚安装的时候,性能是没问题的,我们安装了主题、插件、添加了一些小工具和菜单,然后我们就开始上传内容了,我们都很勤快

Waiting (TTFB) 时间

Time to First Byte 指的是浏览器开始收到服务器响应数据的时间(后台处理时间+重定向时间),是反映服务端响应速度的重要指标。

TTFB 时间多长算长

下面两个图中的 TTFB 时间分别是本站所在服务器的静态和动态网页 TTFB 等待时间。

根据测试,TTFB 时间如果超过了 500 ms,用户在打开网页的时候就会感觉到明显的等待。把 500 ms 以上认为是 TTFB 时间过长。

TTFB 过长的原因

  1. 服务器收到用户打开一个页面的请求时,首先要从数据库中读取该页面需要的数据,然后把这些数据传入到模版中,模版渲染后,再返回给用户。由于查询数据和渲染模版需要需要一定的时间,在这个过程没有完成之前,浏览器就一致处于等待接收服务器响应的状态。有些服务的性能比较低,或者优化没做好。
  2. 如果服务器到用户之间的网络不好,(比如,服务器在欧洲,用户在中国,用户打开网页的时候,请求需要跨越千山万水才能达到服务器),服务器接收到用户请求的时间过长。
  3. 页面在用户的浏览器中保存了过多的 Cookie,每次请求,这些 Cookie 都要发送到服务器,服务器都要处理这些 Cookie。

Waiting (TTFB) 时间过长的解决办法

  1. 缩短服务器响应时间:使用缓存,把 PHP 和 MySQL 的执行时间最小化。
  2. 如果是网络原因,换服务器是比较直接。或者使用CDN服务。
  3. 如果是 Cookie 的原因,可以通过修改应用程序,删除或精简Cookie内容,缩短有效期等。

本站使用的是 Cachify 插件 Memcached 缓存方式,直接把用户请求过的页面,缓存到了内存中,网站加载 Waiting (TTFB) 时间达到了 50 ms 左右,感兴趣的朋友可以用谷歌浏览器的调试工具查看一下。

Cachify 缓存插件描述

Cachify 通过将文章,页面和存档页面缓存为静态内容来优化页面加载。我们可以根据需要选择把静态内容缓存到 WordPress 数据库,硬盘,APC(PHP 缓存)或者 Memcached 中。用户再次访问页面时,直接从缓存中读取页面给用户,不用再查询数据库了。都知道,应用程序的性能瓶颈在数据库,我们把数据库查询降低到了 0,你说速度快不快?Cachify 插件只会缓存用户访问过的页面,长时间没有用户再次访问的页面,Cachify 会从缓存中把这个页面清除掉,确保缓存高效。

Cachify 缓存插件的特性

  • 适用于自定义文章类型。
  • 缓存方法:DB,HDD,APC 和 Memcached。
  • 通过 WordPress 工具栏中的 “刷新缓存” 按钮删除缓存。
  • 支持 WordPress 多站点。
  • 可以选择压缩 HTML 或 JavaScript。
  • 可以为用户浏览器和文章设置不缓存。
  • 手动和自动删除缓存。
  • 自动缓存管理。
  • 可以查看缓存状态的仪表板小部件。
  • Apache 和 Nginx 服务器的设置。
  • 通过钩子/过滤器扩展插件。

配合 Nginx 使用 Memcached 缓存 WordPress 页面

虽然 Cachify 也可以把页面缓存到数据库和硬盘中,但是我们不屑使用这些折衷的方式,毕竟服务器上除了 CPU,速度最快的就是内存,我们要的就是快、快、快。首先服务器使用的是 Nginx,然后服务器上安装了 Memcached 服务,确保这两个条件满足之后,安装并启用 Cacify 插件,在站点的 Nginx 配置文件中添加以下配置,重启 Nginx,

关于配置这里注意报错:

nginx: [emerg] "location" 指令在 /www/server/nginx/conf/nginx.conf:102 中是不允许的
nginx:配置文件/www/server/nginx/conf/nginx.conf 测试失败

"location"指令应该在'server'指令中,例如

server {listen       8765;location / {resolver 8.8.8.8;proxy_pass http://$http_host$uri$is_args$args;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;##在server内 粘贴进来}
}

然后在 WordPress 仪表盘的 Cachify 设置中,选择缓存方式为 Memcached,如下图,设置缓存时间,和缓存生成的时机(对登录用户不缓存、用户发表评论时清理缓存)。

然后退出后台,在前台刷新几下页面试试。不用看详细的参数,我们就可以发现,页面打开一次后,再次打开这个页面的速度刷刷的。有些朋友可能说是这浏览器缓存的问题,好,那我们打开调试模式,清理掉缓存再试试,看看具体的参数,快了多少相信是很明显的。

有朋友可能会有个疑问,如果都把内容缓存到了内存里面,内存会不会被撑爆?大家可以想象一下,内存里面缓存的其实都是页面的代码(不包括图片、视频这些多媒体),一个页面的代码能有多大?撑死 1M,1G 的内容能够缓存多少页面、大家可以计算一下。如果你的服务器的内存实在太小(比如128M),我只有劝你增加服务器内存了,毕竟,咱们做互联网的,再穷不能穷网站。

周广航SEO博客 :WordPress网站加载WAITING (TTFB) 时间过长解决办法

WordPress网站加载WAITING (TTFB) 时间过长解决办法相关推荐

  1. 网站加载 Waiting (TTFB) 时间过长的原因和解决办法

    关注网页前端性能的朋友,在优化网页性能的时候都会遇到网站加载 Waiting(TTFB)时间过长的问题.对于没有优化过的 WordPress 站点,TTFB 时间经常超过了页面内容的下载时间,为用户带 ...

  2. ecshop网页加载waiting(TTFB)时间过长的解决方法

    服务器的内存8G,CPU为4核,宽带8M的阿里云 windows server 2012 . apache 2.4.php 5.3 .mysql 5.5 每次打开网站都觉得有点慢,用谷歌浏览器查看网页 ...

  3. php搜索ttfb用时太长,waiting TTFB时间过长怎么办

    waiting TTFB时间过长的解决办法:首先使用谷歌浏览器开发者工具调到Network:然后在sublime编辑器中die掉所有PHP代码:最后将"host=localhost" ...

  4. office加载MathType导致启动超慢解决办法记录

    前一阵升级到了win11,结果不知为啥word打开时候加载特别慢,原因是mathType7加载慢(打开的时候word上边弹出该加载项加载时间过长的提醒,问是否要把mathTypeCommands.20 ...

  5. VB6不能加载MSCOMCTL.OCX最简单的解决办法

    VB6不能加载MSCOMCTL.OCX最简单的解决办法 分类: Windows平台 VB6不能加载MSCOMCTL.OCX最简单的解决办法,好用到不得了!! ━━━━━━━━━━━━━━━━━━━━━ ...

  6. Dreamweaver8加载站点缓存时卡死,解决办法:

    Dreamweaver8加载站点缓存时卡死,解决办法: 无论中文版的 dreamweaver 8,还是英文版本的dw8或绿色版本的DW8,都可能出现无法启动的情况,这个bug的出现是因为先前你曾经在使 ...

  7. an....软件一直在加载,打不开的解决办法

    an-软件一直在加载,打不开的解决办法. utf-8编码解决大部分windows 软件抽风问题 将电脑设置成utf8编码

  8. 错误: 加载主类 时出现 LinkageError 解决办法

    错误: 加载主类 时出现 LinkageError 解决办法 在导入本地项目,运行的时候,发生了错误: 加载主类 时出现 LinkageError 的错误,搜索了很多种方法,都没有办法解决,后来,自己 ...

  9. php waiting ttfb,浅谈我们个人博客网站加载过程中Waiting(TTFB)时间过长的解决办法...

    最近,我发现博客访问速度已经放缓.我检查了控制台,发现所有静态资源都在200ms内加载.只有第一份文件达到了6.65s.它被称为等待(TTFB). )占用主要加载时间的东西.具体的控制台显示内容如下: ...

最新文章

  1. 改变myeclipse北京颜色
  2. 成员资格、授权 – ASP.NET MVC 4 系列
  3. windows下如何正确使用Jconsole远程连接linux主机上的JVM
  4. undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复
  5. 真格量化-历史波动率
  6. python创建虚拟环境venv_Python 3 使用venv创建虚拟环境
  7. 你可能学了假流程图,三步教会你绘制大厂流程图
  8. 微软2月修复99个漏洞,含1个 0day
  9. 第一章(1.2) 机器学习算法工程师技能树
  10. 关于编译错误ambiguous call of overridden pre R14 auto-imported BIF get/1
  11. Unity3D制作塔防类游戏
  12. 怎么取消计算机文件共享,Win10系统怎么取消文件共享
  13. 计算机弹钢琴的音乐音符,钢琴音乐谱曲基础知识
  14. 快速云:如何保护您的域名系统免遭劫持
  15. 装机必备,四款良心软件释放你的电脑潜力,用了就离不开
  16. Java实现第十届蓝桥杯最大降雨量
  17. Appstore商店排名前十的威客应用!
  18. 001-SE-0011-网络编程
  19. Java是什么?Java有哪些特点?
  20. VS2013导入新项目时,连接数据库问题。

热门文章

  1. 如果 你连 “不要迷恋哥” 都看不懂,这些话 你也就不用看了
  2. 吃透Chisel语言.36.Chisel实战之以FIFO为例(一)——FIFO Buffer和Bubble FIFO的Chisel实现
  3. Halcon20--C#与Halcon联合编程时深度学习报错问题记录
  4. onresize事件
  5. pythonurllib库获取yahoo财经数据_Python获取Yahoo股票数据
  6. 微人事 star 数超 10k,如何打造一个 star 数超 10k 的开源项目
  7. 爱情故事感人伤感喜爱在一起
  8. Chrome浏览器的书签栏bookmarks bar 中显示移动设备书签mobile bookmarks
  9. C生万物 | 指针入门到进阶史上最全面教程
  10. 精选(7) 代码重构