MySQL集群的flexAsynch测试工具的安装和使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

一、编译安装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
AI 代码解读

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
AI 代码解读

在使用cmake进行配置之前,要确保系统中安装了libaio-devel,否则执行以下命令:

yum install libaio-devel
AI 代码解读

3. 编译

make VERBOSE=1
AI 代码解读

4. 安装

make install
AI 代码解读

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
AI 代码解读

二、参数说明

    -t :想要启动的线程总数,默认值为1
    -p :每个线程的并行事务总数,默认值为1
    -o :每个循环的事务总数,默认值为500
    -l :想要运行的循环总数,默认值为10表示无限循环
    -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毫秒的间隔时间发送
    -local1表示每个线程都有自己的结点执行;2表示多个结点循环执行每个并行事务;3表示多个结点随机执行每个并行事务
    -ndbrecord :使用NDB记录
    -r :额外循环的总数
    -insert :对标准表仅执行插入操作
    -read :对标准表仅执行读操作
    -update :对标准表仅执行更新操作
    -delete :对标准表仅执行删除操作
    -create_table :对标准表仅执行创建表操作
    -drop_table :对标准表仅执行删除表操作
    -warmup_time :测量开始之前的预热时间
    -execution_time :测量完成时的执行时间
    -cooldown_time :测量完成之后的冷却时间
    -table :标准表的总数,默认值为0
AI 代码解读

常用的参数有-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
AI 代码解读

上述性能测试基于以下文章搭建的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.
AI 代码解读

那么就说明没有空闲的“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
AI 代码解读

上述示例性能测试得到的结果为:

三、其他测试工具

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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1
分享
相关文章
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
29 16
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
184 86
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
62 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
212 42
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
74 6
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
329 16
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
97 7

热门文章

最新文章