在MediaWiki中启用主从两个MySQL服务器
来自Jamesqi
--James Qi 2009年9月4日 (五) 12:28 (CST)
我们在使用MediaWiki的网站中,为了保证访问性能,MySQL使用的是单独的服务器,从系统负载来看也很小,Linux中TOP查看负责基本都在1以下,但始终存在一个现象,就是偶尔有CPU占用达到100%的情况,这时网站无法访问,持续3-5分钟左右后CPU占用率恢复正常,这样的情况每天都有3-5次,算下来每天大约有20分钟左右网站访问很慢或者几乎无法访问。
这个问题持续有很长时间了,至少有1、2年没有解决,最近一段时间同事专门来进行了日志检查、数据收集,发现有一些MySQL指令很不合理,但没有找到对应的具体页面或者网站操作,如果要修改程序也是一个很困难的事情。于是商量决定使用MediaWiki支持的主从式MySQL服务来尝试解决,算是一种分布式的负载均衡办法。
办法其实也简单,在另外一台服务器上安装MySQL服务并设置成Slave模式,以前的服务器上MySQL服务设置成Master模式,这样Slave就会自动读取Master上的数据进行复制同步,而MediaWiki写数据是到Master上,读数据是到Slave上。在LocalSettings.php中设置一个数组就可以了:
$wgDBservers = array( array( 'host' => "ip1", 'dbname' => "dbname1", 'user' => "user1", 'password' => "password1", 'type' => "mysql", 'load' => 0, ), array( 'host' => "ip2", 'dbname' => "dbname2", 'user' => "user2", 'password' => "password2", 'type' => "mysql", 'load' => 1, ), );
如果网站访问量极大的话,还可以设置多台Slave来进行负载均衡,具体设置办法参看:Manual:$wgDBservers。前两天是进行测试,今天开始设置到人工搜索网站上运行,看看这样的效果如何,然后决定是否继续、是否在其它网站也启用主从方式。
标签:MediaWiki、MySQL、负载均衡、服务器。 |
相关内容:
|