MySQL集群和复制测试环境文档

MySQL集群和复制测试环境文档

概要

经过一段时间的搭建配置测试,Mysql数据库的集群和复制环境搭建完成,由于虚拟机紧张,各测试环境都是4台机器混拼起来使用,正式测试时性能上会有所影响。目前4台机器搭建了3个环境,一个是MySQL Cluster的集群环境,业务系统的改造只涉及到符合MySQL语法部分,另外两个都是Repilication复制环境,一个使用MySQL_proxy代理,直接实现了读写分离和负载均衡,不用修改代码,master和slave用一样的账号,缺点是字符集,lua脚本语言编程,起步较高。一个使用Amoeba Mysql代理,都可以使实现读写分离,管理配置上Amoeba Mysql较简单,稳定性较好,不用修改代码,是很灵活的数据解决方案,缺点是需要自己分配账户和后台数据的权限管理独立,权限处理不够灵活。具体的测试需要各课题组结合业务深入进行。

各测试环境简要比较

一、Mysql cluster7.3.6集群环境

    本次的mysql cluster使用的是ndb引擎,mysqlcluster采用7.36的社区版本,节点数限制不大于60台,同配置的虚拟机,使用相同工具和sql语句,下面测试数据仅供参考:

测试环境

测试工具

引擎ndb

引擎innodb,

Sql节点的正常并发数

mysqlslap

300-400个左右

 

100万连续写入,调用存储过程,100个并发会话,每个1万

mysqlslap

9.099秒

 

1000万连续写入,调用存储过程,100个并发会话,每个10万

mysqlslap

110.401秒

 

在100万数据表基础上,连续1万个读写事务,并发50个会话

sysbench

959.71 事务/秒

973.41 事务/秒

100万数据上运行一个查询、一个更新语句,50个会话,100万次请求

Super smack

3010.21请求/秒

 

 

结论:

(1)mysql集群可用性达99.999%,机器cpu需要大缓存,内存要求配置较高,网络要求较高。

(2)Mysql 集群有内存数据库功能,建立表时,允许设置为内存数据,主键设置非常重要,大量的查询都是通过主键访问,速度快。

(3)Mysql集群参数很多,调整参数门槛高,本环境只配置了基本内存和连接数。

(4)Mysql集群在ndb引擎性能没有innodb的好,比标准mysql性能要低。

(5)Mysql集群环境的建表引擎需要选择ndbcluster,各节点情况正常,有节点断开后不影响正常的使用,断开节点恢复正常后,数据自动同步。新版本各方面性能有所提高。

(6)Mysql集群后台的多事务请求,运行多日,情况良好。

二、Replication复制环境Master/Slave  MySQL-proxy

    Replication 可以将master的数据复制分布到多个slave上,利用slave分担master的读压力。Mysql proxy是一个中间代理层,开源,简单的说就是一个连接池,负责将前台应用的请求连接转发给后台数据库,通过lua脚本实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。

    配置管理上要求对lua语法级脚本非常熟悉,起步比较高。

主要存在的问题:

(1)主从同步的延迟,采用的异步的同步机制,所以存在延时性,。

(2)负载均衡的算法过于简单,主要就动态和静态两种。没有很好的考虑请求的服务需求资源,不能真是反映出节点的真实负载能力。

(3)Mysql proxy采用lua语言扩展语言,但是lua得到的动态信息只有连接数,不能获取其他的动态信息。

三、Replication复制环境Master/slave Amoeba Mysql
   (变形虫)个人开发的java项目,实际生产使用较多

  Amoeba for mysql主要在应用层访问mysql是充当query路由功能,对客户端透明。对客户端来说相当于一个虚拟的mysql,对外提供mysql协议。

(1)能够实现读写分离,性能方面也不错,配置简单方便。

(2)但是不支持事务,暂时不支持存储过程(近期可能会支持)。

(3)不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多的数据场合)。

(4)暂时不支持分库分表,目前只能做到分数据库实例,每个被切分的节点需要保持库结构一致。

(5)具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到达目标库,可并发请求多台数据库合并结果。

主要解决:

降低数据切分带来复杂多数据库结构。

提供切分规则并降低数据切分规则给应用带来的影响。

降低db与客户端的连接数。

读写分离。

 

Mysql集群和复制测试环境详细配置情况

网络组申请的linux环境,Red Hat linux 6.3 64位操作系统,规划4台虚拟主机  配置: CPU 4核,内存6G,存储100G。

机器名和ip地址

linux147 10.40.20.147 linux148 10.40.20.148

linux149 10.40.20.149 linux150 10.40.20.150

Linux 系统 root密码:rootroot

一、Mysql cluster7.3.6集群环境

管理服务器:10.40.20.150

存储及sql节点1:10.40.20.149  

存储及sql节点2:10.40.20.150

二、Replication复制环境 Master/Slave  MySQL-proxy

代理地址:10.40.20.149

Master:10.40.20.147

Slave:10.40.20.148

(mysql账号:root  密码:root)         不推荐,稳定性欠缺

三、Replication复制环境Master/slave  Amoeba Mysql

Amoeba服务器:10.40.20.150

Master:10.40.20.147

Slave:10.40.20.148

(mysql账号:root  密码:root)

 

 

 

 

 

 

 

(本文档仅供参考  鲍杰锋)

 

 

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页