MySQL集群的flexAsynch测试工具的安装和使用
一、编译安装flexAsynch
Oracle官方推荐的MySQL Cluster性能测试工具有DBT2,flexAsynch等。此处采用了flexAsynch,它是一种非常好的NDB测试工具。由于Oracle并不提供flexAsynch的二进制文件下载,仅仅在MySQL Cluster的源码包中提供这个测试工具的源码,所以必须手动编译MySQL Cluster才能获得flexAsynch的执行文件。以下命令都是在RHEL 6.4中以root账户权限运行。
1. 下载
cd /root/Downloads wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.4.tar.gz tar -xvzf mysql-cluster-gpl-7.3.4.tar.gz cd mysql-cluster-gpl-7.3.4 |
2. 配置
cmake . -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_NDB_TEST=ON -DWITH_BUNDLED_LIBEVENT=ON -DWITH_BUNDLED_MEMCACHED=ON -DWITH_NDBMTD=ON -DWITH_NDB_TEST=ON 在使用cmake进行配置之前,要确保系统中安装了libaio-devel,否则执行以下命令: yum install libaio-devel |
3. 编译
make VERBOSE=1 |
4. 安装
make install |
5. 拷贝
编译安装完成之后,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 |
二、参数说明
-t:想要启动的线程总数,默认值为1 -p:每个线程的并行事务总数,默认值为1 -o:每个循环的事务总数,默认值为500 -l:想要运行的循环总数,默认值为1,0表示无限循环 -load_factor:索引中的负载因数,以百分比表示(40 ~ 99) -a:属性(数据库表的列)总数,默认值为25 -c:每次事务的操作总数 -s:每项属性的大小,默认为1字节(主键大小总是为1字节,与这项参数值无关) -simple:使用简单读模式来读取数据库 -dirty:使用脏读模式来读取数据库 -write:在插入和更新时,使用writeTuple模式 -n:使用标准表名 -no_table_create:不要在数据库中创建表 -temp:创建表,但不记录日志 -no_hint:不给出事务处理协调器执行到哪儿的提示 -adaptive:使用自适应的发送算法(默认选项) -force:当通信时强制发送 -non_adaptive:以10毫秒的间隔时间发送 -local:1表示每个线程都有自己的结点执行;2表示多个结点循环执行每个并行事务;3表示多个结点随机执行每个并行事务 -ndbrecord:使用NDB记录 -r:额外循环的总数 -insert:对标准表仅执行插入操作 -read:对标准表仅执行读操作 -update:对标准表仅执行更新操作 -delete:对标准表仅执行删除操作 -create_table:对标准表仅执行创建表操作 -drop_table:对标准表仅执行删除表操作 -warmup_time:测量开始之前的预热时间 -execution_time:测量完成时的执行时间 -cooldown_time:测量完成之后的冷却时间 -table:标准表的总数,默认值为0 |
常用的参数有-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://www.linuxidc.com/Linux/2014-03/98118.htm |
如果出现以下错误:
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结点。可以参考以下资料:
在config.ini配置文件中添加以下内容,然后重启MySQL集群:
[MYSQLD] NodeId=6 Hostname=192.168.124.141 |
上述示例性能测试得到的结果为:
相关推荐
graseed 2020-10-28
jinhao 2020-09-07
yoohsummer 2020-06-01
SXIAOYI 2020-09-16
impress 2020-02-20
chenshuixian 2013-06-01
羽化大刀Chrome 2013-05-31
kanpiaoxue 2013-06-19
quanhaoH 2013-06-17
pigsmall 2020-11-19
大数据杂谈 2020-09-26
ChinaWin 2020-08-13
mohanzb 2020-08-01
王国平 2020-06-20
kangtingting0 2020-05-20
MichelinMessi 2020-02-19
nicepainkiller 2020-01-25
hfszy0 2013-05-15
lizhenmxcz 2013-05-12