WordPress刚刚安装的时候,性能是没问题的,我们安装了主题、插件、添加了一些小工具和菜单,然后我们就开始上传内容了,我们都很勤快
Waiting(TTFB)时间
TimetoFirstByte指的是浏览器开始收到服务器响应数据的时间(后台处理时间+重定向时间),是反映服务端响应速度的重要指标。
TTFB时间多长算长
下面两个图中的TTFB时间分别是本站所在服务器的静态和动态网页TTFB等待时间。
根据测试,TTFB时间如果超过了ms,用户在打开网页的时候就会感觉到明显的等待。把ms以上认为是TTFB时间过长。
TTFB过长的原因
服务器收到用户打开一个页面的请求时,首先要从数据库中读取该页面需要的数据,然后把这些数据传入到模版中,模版渲染后,再返回给用户。由于查询数据和渲染模版需要需要一定的时间,在这个过程没有完成之前,浏览器就一致处于等待接收服务器响应的状态。有些服务的性能比较低,或者优化没做好。
如果服务器到用户之间的网络不好,(比如,服务器在欧洲,用户在中国,用户打开网页的时候,请求需要跨越千山万水才能达到服务器),服务器接收到用户请求的时间过长。
页面在用户的浏览器中保存了过多的Cookie,每次请求,这些Cookie都要发送到服务器,服务器都要处理这些Cookie。
Waiting(TTFB)时间过长的解决办法
缩短服务器响应时间:使用缓存,把PHP和MySQL的执行时间最小化。
如果是网络原因,换服务器是比较直接。或者使用CDN服务。
如果是Cookie的原因,可以通过修改应用程序,删除或精简Cookie内容,缩短有效期等。
本站使用的是Cachify插件Memcached缓存方式,直接把用户请求过的页面,缓存到了内存中,网站加载Waiting(TTFB)时间达到了50ms左右,感兴趣的朋友可以用谷歌浏览器的调试工具查看一下。
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"指令在/