WordPress 优化实例:Since1984
Since1984.cn 使用的是阿里云的主机,1G内存,单核,对于一个访问量在几千的博客来说已经足够了,但是在优化之前 Since1984 每天都会宕机,访问也非常慢,页面的 SQL 查询有30多条,总之状态非常不理想,站长也快被折腾哭了。那么我是如何何优化 Since1984 的呢?
1. 解决宕机的问题
稳定是压倒一切的前提,因此首先要解决就是每天都会宕机的问题,经过排查发现,主机的 httpd 进程被设置为 450 个,这个显然是太多了,每个 PHP 进程都会占用内存,这样很容易就把物理内存消耗完,虚拟内存也消耗完,最后负载拼命往上跳,一下就到了 200 多,整个机器就动不了。所以宕机的主要问题就是 httpd 进程太多,将其调整小一些,一般将其设置为 30 个左右。
2. 内存缓存
我在很多地方都说过解决 WordPress 性能最好的办法就是使用内存缓存,所以优化的第二步就是安装服务器 memcached 组件和 PHP memcached 扩展,安装 WordPress memcached 插件。
这一系列安装好之后,页面的 SQL 查询立刻从 30 多条降到 10 条左右,页面生成时间也快了一倍多。
3. 优化代码
使用了内存缓存之后,除了 WP 自身的代码会缓存之外,有些自身的代码也要按照 WordPress 对象缓存的模式去写,比如侧边栏的最新日志,最新留言,可以设置在内存中缓存 30 分钟,10分钟等。这样可以大大降低数据库请求,提高速度。
4. 优化数据库
MySQL 数据库本身有个缓存的机制,可以保存保存 SQL 的查询结果,同样的查询不再从数据库检索,对速度有很大的提升。加上这个之后,页面的生成时间可以减少到原来的 1/3 或者 1/4。
然后可以优化数据库,打开 PHPMyAdmin,选择所有表,然后点击优化数据库,当然以后可以安装一个叫做 Optimize DB,在 WordPress 后台优化数据库。
最后清理数据库的垃圾,比如删除日志修订记录等,以前有个朋友的博客,只有 1千 多篇文章,但是日志修订却有 1万 多篇,清理了日志修订之后,速度立刻就恢复了,满血复活。
5. 静态文件做 CDN 加速和分流
Since1984 的博客有很多静态文件,并且首页,侧边栏的最新日志,日志页面下面的随机日志都使用了不同的缩略图,原来使用的缩略图插件非常笨重,严重影响效率,我是使用WPJAM Basic插件中的镜像存储功能和缩略图功能来处理的。
首先使用阿里云OSS的镜像存储功能把所有文章中图片和主题中的 CSS,JS,背景图片等静态文件同步到阿里云OSS,用户访问的时候直接访问阿里云OSS的服务器,迅速降低服务器的负载,然后使用阿里云OSS的缩略图功能生成各种不同的尺寸的缩略图来实现网站上不同位置不同缩略图的功能。
静态文件使用 CDN 做分流和加速之后,不仅提高了网站的速度,并且服务器的负载也降低了。对于网站提速是有非常大的帮助。
更详细的 WordPress 优化技巧,请看:WordPress 性能优化:为什么我的博客比你的快。
最后,访问:Since1984.cn!