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://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的使用教程,敬请期待!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
11月前
|
人工智能 测试技术 芯片
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
本文介绍了使用四块Framework主板构建AI推理集群的过程,并基于AMD Ryzen AI Max+ 395处理器进行大语言模型推理性能测试,重点评估其并行推理能力及集群表现。
1104 0
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
|
12月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
9月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
2227 4
MySQL源码编译安装
|
9月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
1493 4
MySQL二进制包安装
|
9月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
887 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
9月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
873 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
9月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
918 6
|
10月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2476 16
|
关系型数据库 MySQL Linux
安装MySQL 5.7到红帽系RHEL8+系列上
本文介绍了在RHEL 8及以上系统中安装MySQL 5.7的两种方法:解压安装与RPM包安装。涵盖环境准备、目录配置、数据盘挂载、初始化及服务启动等关键步骤,适用于红帽系(8+)部署MySQL 5.7。

推荐镜像

更多