为 MovableType 加入 Memcached 增强效率
转移到VPS后可以随心所欲地配置服务器,这次加入了Memcached以增强MovableType搜索页面和全站生成时的效率。
部署Memcached的好处
TONYHEAD 通利堂的网站结构有一个重要的部分就是标签和关键词页面,例如魔兽世界这个标签,浏览器中的路径是简洁的例如:
但实际上是用MovableType的搜索功能+.htaccess做的一个花招,每次用户或者搜索引擎点击上面的地址时都会执行一次以下脚本:
- https://www.tonyhead.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=1&tag=魔兽世界
- https://www.tonyhead.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=1&search=魔兽世界
当搜索引擎蜘蛛在爬我的网站的时候我就会开始担心服务器的资源了 =。= ,而且响应变慢的话也会影响收录结果,所以有任何可能提高这个页面查询结果的方法的话我都想尝试,例如引入一个Memcached。
下面的表格是我尝试不同大小的Memcached的结果,最后根据VPS的限制我选择了在内网的其他空闲VPS上跑128MB的。
未加入Memcached前生成全站耗时11分20秒 | 第一次生成全站耗时 | 第二次生成全站耗时 | 第三次生成全站耗时 |
Memcached设置为32MB时 | 12分3秒 | 7分53秒 | 7分19秒 |
Memcached设置为64MB时 | 7分59秒 | 9分11秒 | 8分8秒 |
Memcached设置为128MB时 | 8分55秒 | 8分16秒 | 7分59秒 |
Memcached部署方法
VPS上安装Memcached
yum install memcached
启动Memcached,以下命令是启动一个在本机11211端口上128MB的实例,如果在内网其他机子(172.11.7.30)上启动则在172.11.7.30上执行 /usr/bin/memcached -d -m 128 -u root -p 11211 -l 172.11.7.30
/usr/bin/memcached -d -m 128 -u root -p 11211 -l 127.0.0.1
为Perl安装Memcached模块
wget http://search.cpan.org/CPAN/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz && tar -zxvf Cache-Memcached-1.30.tar.gz && cd Cache-Memcached-1.30 && perl Makefile.PL && make && make install
String-CRC是其依存模块,也要安装。
wget http://search.cpan.org/CPAN/authors/id/S/SO/SOENKE/String-CRC32-1.4.tar.gz && tar -zxvf String-CRC32-1.4.tar.gz && cd String-CRC32-1.4 && perl Makefile.PL && make && make install
为MovableType安装Memcached模块
不需要,因为MovableType是原生支持Memcached的。
好吧,其实还是需要在mt-config.cgi里面配置一下MemcachedServer的,告诉系统哪里可以找到Memcached服务器。
MemcachedServers 127.0.0.1:11211
如果你在本机和172.11.7.30上都装了Memcached你可以同时添加多个服务器。
MemcachedServers 127.0.0.1:11211 MemcachedServers 172.11.7.30:11211
修改mt-config.cgi后保存,如果你在FastCGI模式下运行MovableType还需要重启一下Web服务器。