Oracle官方推荐的MySQL Cluster性能测试工具有DBT2,flexAsynch等。此处采用了flexAsynch,它是一种非常好的NDB测试工具。由于Oracle并不提供flexAsynch的二进制文件下载,仅仅在MySQL Cluster的源码包中提供这个测试工具的源码,所以必须手动编译MySQL Cluster才能获得flexAsynch的执行文件。以下命令都是在RHEL 6.4中以root账户权限运行。
在使用cmake进行配置之前,要确保系统中安装了libaio-devel,否则执行以下命令:
yum install libaio-devel编译安装完成之后,flexAsynch位于/usr/local/mysql/bin目录中,将其拷贝至MySQL Cluster管理结点的/usr/local/mysql/bin目录或者其他合适的目录中,即可对MySQL Cluster进行性能测试。如果运行flexAsynch时报告找不到某些lib库的错误,那么需要添加以下内容到/etc/profile文件中:
LD_LIBRARY_PATH=/usr/local/mysql/lib export LD_LIBRARY_PATH常用的参数有-l(测试循环次数)、-t(线程数量)、-p(并行事务数量)、-o(每次循环的事务数量)、-c(每次事务的操作数量),所以性能测试的总操作数量为l*t*p*o*c。
例如,可以执行以下性能测试:
/usr/local/mysql/bin/flexAsynch -ndbrecord -temp -con 1 -t 4 -p 10 -a 2 -l 3 -r 2上述性能测试基于以下文章搭建的MySQL集群:
http://blog.csdn.net/yang1982_0907/article/details/20716845
如果出现以下错误:
Configuration error: Error: Could not alloc node id at localhost port 1186: Connection done from wrong host ip 127.0.0.1.那么就说明没有空闲的“slot”可以接受性能测试建立的连接,这时候需要在管理结点的config.ini配置文件中添加更多的“[MYSQLD]”项,可以理解为将管理结点自身也配置为SQL结点。可以参考以下资料:
http://serverfault.com/questions/548651/benchmark-mysql-cluster-using-flexasynch-no-free-node-id-found-for-mysqldapi
在config.ini配置文件中添加以下内容,然后重启MySQL集群:
[MYSQLD] NodeId=6 Hostname=192.168.124.141上述示例性能测试得到的结果为:
Database Test Suit也是一套优秀的数据库集群性能测试工具,DBT-1~5分别对应不同的使用场景对数据库集群进行测试。
1. Database Test 1 (DBT-1: Web Server)DBT-1是一个基于WEB的事务性能测试工具。它会模拟WEB用户的活动,例如从一个在线书店浏览和购买商品。DBT-1是事务处理性能委员会(TPC)的TPC-W基准测试规范的一个十分有用的实现。一次测试运行得到的结果包括每秒事务数、CPU使用率、I/O活动、内存使用率。GIT链接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt1
2. Database Test 2 (DBT-2: OLTP)DBT-2是一个OLTP事务性能测试工具。它模拟一个批发零件供应商,有若干个工作人员会访问数据库,更新客户信息,并且检查零件库存情况。DBT-2是TPC的TPC-C基准测试规范的一个十分有用的实现。一次测试运行得到的结果包括每秒事务数、CPU使用率、I/O活动、内存使用率。GIT链接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt2
3. Database Test 3 (DBT-3: DSS)DBT-3可用于决策支持系统的工作负载测试。它由一套面向业务的ad-hoc查询和并发数据修改组成。DBT-3是TPC的TPC-H基准测试规范的一个十分有用的实现。GIT链接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt3
4. Database Test 4 (DBT-4: Web Services)DBT-4可用于引用服务器和WEB服务的工作负载测试。它是由一系列类似于一个B2B交易环境的活动所组成的。DBT-4是TPC的TPC-App基准测试规范的一个十分有用的实现。GIT链接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt4
5. Database Test 5 (DBT-5: OLTP)DBT-5可用于OLTP的工作负载测试,它模拟一个经纪公司的活动。DBT-5是TPC的TPC-ETM基准测试规范的一个十分有用的实现。GIT链接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt5
过段时间会发布Database Test Suit的使用教程,敬请期待!
相关资源:python入门教程(PDF版)