|
在使用MediaWiki的网站中,为了保证访问性能,MySQL使用的大都是单独的服务器,从系统负载来看也很小,Linux中TOP查看负责基本都在1以下,但始终存在一个现象,就是偶尔有CPU占用达到100%的情况,这时网站无法访问,持续3-5分钟左右后CPU占用率恢复正常,这样的情况每天都有3-5次,算下来每天大约有20分钟左右网站访问很慢或者几乎无法访问。
当这样的问题持续很长时间没有改善的时候,可以进行日志检查、数据收集,如果发现有一些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来进行负载均衡。
|
|