为网站(WordPress)添加内存级缓存–需管理员(ROOT)权限

WordPress是目前最为通用的博客平台,据统计现在80%的独立博客是由WordPress搭建的。但是,WordPress占用CPU资源巨大,生成一个普通页面常常涉及几十个SQL查询和秒级的运行时间,因此对WordPress进行动态页面静态化成为优化性能的最佳选择。
现在使用最为广泛的缓存插件当属WP-Super-Cache,性能较高且功能强大,能满足大部分需求。但是,WP-Super-Cache使用硬盘作为缓存介质,在面对大流量访问时会受限于硬盘IO。因此Batcache、Super Cache Plus等内存级缓存插件产生了,但由于其配置稍显复杂且使用上不如WP-Super-Cache顺手,并未得到广泛的普及。
在这里我要介绍一种在Unix/Linux服务器上实现内存级缓存的简单方法。
前提:要在WordPress中安装WP-Super-Cache插件(或是其他以硬盘为介质的缓存插件)并激活插件。
首先,我们通过SSH登录主机,进入/dev/shm目录,新建一个目录用来存放缓存文件(如longsays-cache):
root@localhost:~# cd /dev/shm
root@localhost:/dev/shm# mkdir longsays-cache

然后进入WordPress的wp-content目录,并删除其下的cache目录(假设WordPress根目录为/home/www):
root@localhost:/dev/shm# cd /home/www/wp-content
root@localhost:/home/www/wp-content# rm -rf cache

建立一条由/dev/shm/longsays-cache到/home/www/wp-content/cache的软链接,并且改变权限为777:
root@localhost:/home/www/wp-content# ln -s /dev/shm/longsays-cache /home/www/wp-content/cache
root@localhost:/home/www/wp-content# chmod -R 777 /home/www/wp-content/cache

最后刷新一下网页,如果在源代码的最后输出了正确的信息(如下),则说明成功了。


在UnixLinux系统中,自带了一个将内存作为硬盘使用的工具/dev/shm,在这个目录中存放的文件实际上是存放在内存中的,我们可以将缓存文件通过软链接的方式存放至/dev/shm目录中,直接实现内存级缓存。
不过这种方法有一点局限性,那就是必须为拥有root权限的VPS,虚拟主机不支持这种方法。

《为网站(WordPress)添加内存级缓存–需管理员(ROOT)权限》上有17条评论

        1. memcache和eAccelerator不是插件…是跟nginx,php,mysql一个性质的应用,需要root权限安装,虚拟主机使用需要提供商安装,不过一般卖虚拟主机的不会安装的,因为占内存(使用内存换速度)…
          缓存插件的话WP-Super-Cache还好啊…

  1. 这个方法太狠了。
    不过设置为 777 权限会不会带来安全隐患?
    有没有测试一下这样设置的改善效果?我记得有文章曾说 Linux 自己就会通过内存来缓存经常使用的文件。当使用 WPSC 静态化之后,如果内存空间足够,应该静态化的文件都可以在内存中拥有一份缓存的吧?所以我对使用这种方法前后的效果比较很感兴趣。

    1. 在/dev/shm里貌似外部无法访问,而只是cache777而已…你也可以设置成httpd的用户(一般为www),只要httpd能修改文件的权限就行…
      linux是会缓存经常用的文件,但那貌似是应用,而不是应用打开的文件
      wpsc缓存是存在于硬盘中的…
      一般情况下/dev/shm中的文件比硬盘中的快…

    2. 我的所有vps目前都剩余60%以上的内存…
      所以应该没有缓存web的文件
      而家用ubuntu就是基本上90%以上(8G内存)
      vps安装了缓存程序的除外…

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code