WordPress性能优化技巧:加速你的WordPress

2012-02-29 09:57:17来源:我爱水煮鱼作者:

很多同学都说 WordPress 很慢,前面我发布的插件 WPJAM Debug,可以在页脚显示当前页面有多少条 SQL 查询,页面生成花了多少时间,并且把 SQL 按照执行顺序和按照耗时列出,可以通过这样的方式帮你分析 WordPress 哪

很多同学都说 WordPress 很慢,前面我发布的插件 WPJAM Debug,可以在页脚显示当前页面有多少条 SQL 查询,页面生成花了多少时间,并且把 SQL 按照执行顺序和按照耗时列出,可以通过这样的方式帮你分析 WordPress 哪里慢。

但是 WPJAM Debug 只是分析 WordPress 效率,具体涉及到 WordPress 性能优化,还需要自己动手来做,今天我就讲讲这一段时间来我工作的网站:App每日推送(也是基于 WordPress 构建)是怎么优化的。

关于App每日推送

App每日推送是基于 WordPress 构建的 iPhone/iPad 应用推荐服务,这是目前我做过最复杂的 WordPress 网站,有多重筛选:可以通过设备(iPhone/iPad/通用),价格(免费/限免/收费)分类(游戏/应用/工具等等)选择自己喜欢的 App,用户动态,讨论区,消息通知,积分,积分兑换等等功能。

目前整个网站每个月的流量已经超过 300W,但是网站目前的速度很快,大部分页面在 0.1 秒内生成,并且只有 2 条 SQL 查询,比如首页:2 queries in 0.063 seconds。

那么我们是怎么进行优化的?

服务器优化

首先要选择一个靠谱的主机托管商,在国内这个很多时候让你抓狂,但是只要努力还是可以的,第二选择 BGP 或者多线机房,让全国用户访问都能有不错的速度,第三选择独立的服务器,再不行,也要选择 VPS,因为你没有服务器的 Root 权限很多东西是无法进行的,个人博客可以考虑 Media Temple 这类的 VPS 主机。

服务器问题解决之后,服务器可以做如下优化:

1. Web 服务器选择使用 Nginx:效率和并发比 Apache 高,系统资源消耗低。

2. MySQL 设置 MySQL Query Cache,可以保存保存查询结果,同样的查询不再从数据库检索,对速度有很大的提升。

3. 使用 eAccelerator 加快 PHP 脚本的执行效率:把经过编译后的 PHP 代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。

WordPress 程序优化

WordPress 插件一定要只用必须的,另外尽量能够全部插件自己写,如果不能全部自己写,也要对第三方插件按照自己需求进行改写,

WordPress 主题代码的质量一定要保证,尽量使用模板函数,比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是get_the_terms 直接从缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据,不用说,肯定第一个效率更好。

WordPress 缓存

关于 WordPress 缓存我已经做过详细的总结,这里就不再累赘,具体涉及到 App每日推送,由于动态网站的特性,注册用户比较多,不适合 WP Super Cache 这样的静态缓存,对硬盘读写太多,讨论区又无法缓存,我们使用 Memcached 和 Batcache 搭配的内存缓存模式:

对于已登陆的用户,Memcached 会把 Object Cache 的对象存到内存里面,服务器的内存足够大,读取和存储速度也够快,并且内存缓存命中率也大于 93%。另外我们 WordPress 程序经过优化,每个页面的查询一般在 2 条左右,所以整个网站效率很高。

对于未登录的用户,Batcache 会把整个页面当做一个对象存到内存里面,未登录用户访问的时候,整个页面从内存中取出,速度奇快。

WordPress 性能优化总结

选择好的服务器和托管商,对 WordPress 程序进行优化,并且做好缓存,WordPress 效率其实很高的,加上 WordPress 本身的灵活性和功能强大,WordPress 作为各种建站绝对是非常不错的选择。

另外这里还有一份我总结的关于 WordPress 性能优化的 PPT: http://vdisk.weibo.com/s/2QR2M,内容略有补充。

关键词:WordPress

赞助商链接: