调整MediaWiki文件缓存设置降低服务器负载
--James Qi 2009年5月6日 (四) 20:49 (CST)
最近半个月左右,有一台服务器老是出问题,死机后只能让机房人员帮忙重启,但原因始终查不出来,到后来几乎每隔1、2天就随时可能Down掉。昨天晚上打球回来发现再次死机了,我也不好意思再去让机房人员重启了,就把站点都转移到另外一台服务器上去了,转移都很顺利,只是另外一台服务器的负载马上升高了很多,而且硬盘容量也更紧张。
今天早上去办公室,一边联系新配一台服务器拿过去顶替的事情,一边设法降低负载(否则可能所有网站都无法正常访问了)。从前面各种措施的效果来看,文件缓存还是很明显的,也就是利用MediaWiki的File Cache功能生成静态HTML文件。这个功能默认是不启用的,启用后还是很管用,特别是对大流量的网站来说,Apache将已经生成的HTML文件发给浏览者比从MySQL数据库读取数据发给浏览者的效率高很多倍。
不过文件缓存的缺点是更新机制不好,特别是不支持动态页面列表内容的更新。我以前都是采用设置$wgCacheEpoch来定期更新,有些网站用每天更新、有些网站每月更新,以便包含动态页面列表的页面也能周期性更新。但这样中仍然会过多消耗服务器资源,其实绝大多数不含动态数据的页面根本不需要更新,只需要更新包含动态数据的页面就可以。
我在MediaWiki官方网站上找到了两个扩展程序:Extension talk:MagicNoCache、Extension:CacheManager,第一个很符合我们的需要,但反复测试都不能正常使用,也没有什么技术支持,后面一个安装需要改数据库、比较麻烦,就都没用。我在需要更新的页面中加入一个人工保持一定频率更新的模板,这样该模板变化后,调用的页面也会更新,算是一种可用的解决办法。
关于File Cache还剩下一个问题,就是在http://18dao.jamesqi.com/ 等繁体网站中,从页面源文件来看没有使用缓存,但从设置的缓存文件目录来看,分明是又新缓存文件产生,这个问题很早就发现了,不过一直找不到原因和解决办法,留着以后检查、处理。
从今天白天几个小时的效果来看还是很明显的,服务器负载基本都控制在正常范围内。不过过两天还是准备将另外一台好服务器拿到机房去顶替坏掉的服务器,另外还将目前的服务器进行硬盘、内存的扩充。
标签:MediaWiki、缓存、File Cache、服务器、负载。 |
相关内容:
|