BenchmarkSQL测试DM数据库

1、工具介绍:

        BenchmarkSQL工具是对OLTP数据库主流测试标准TPC-C的开源实现,该工具的测试结果详细信息存储在CSV文件中,并可以将结果转换为HTML报告。本次介绍BenchmarkSQL V5.0测试达梦数据库,主要包括BenchmarkSQL V5.0测试达梦数据库使用实例、应用技巧、基本知识点总结和需要注意事项但是该工具默认不支持DM数据库,需要修改部分源码,让BenchmarkSQL支持DM数据库。

2、环境准备:

       操作系统是CentOS 7.3,JDK版本是1.8.0_131,apache-ant版本是1.9.15,BenchmarkSQL的版本是V5.0,apache-ant和BenchmarkSQL安装在了/opt目录下。

2.1、安装JDK 7及以上版本,配置环境变量

export JAVA_HOME=/usr/local/jdk1.8.0

export CLASSPATH=.:$JAVA_HOME/lib.tools.jar

export PATH=$JAVA_HOME/bin:$PATH

2.2、载并安装apache-ant,配置环境变量

       在官网上下载apache-ant-xxx.bin.zip安装包,解压后添加进环境变量PATH中,保存退出,重新加载环境变量。官网下载地址:https://ant.apache.org

vim ~/.bashrc

export PATH=/opt/apache-ant-1.9.15/bin:$PATH

 source ~/.bashrc

2.3、下载BenchmarkSQL,并修改部分源码

       在官网下载并安装BenchmarkSQL,修改benchmarksql-5.0/src/client下的jTPCC.java文件,增加DM相关配置(红线标注的内容)来支持达梦数据库。

2.4、修改完BenchmarkSQL源码后重新编译

       在修改完BenchmarkSQL源码后,还需要进入benchmarksql目录下,直接执行ant命令重新进行编译。

2.5、创建BENCHMARK用户,授予DBA权限

#创建benchmark用户,密码ROOT123

CREATE USER benchmark IDENTIFIED BY ROOT123;

#授权benchmark用户DBA管理员权限

GRANT DBA TO benchmark;

2.6、根据run目录下数据库的props文件创建达梦的props.dm文件

db=dameng
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://192.168.10.30:5236
user=BENCHMARK
password=ROOT123456

warehouses=32

//该参数用于指定仓库个数,每个warehouse大小大概是100MB,用于控制测试数据量。如果该参数设置为10整个数据库9张表的大小大概在1GB,每个仓库负责十个区域的供货,每个区域3000个客户服务,每个仓库维护100000种商品的库存纪录,每个仓库至多有10个终端

loadWorkers=8

//该参数用于指定测试数据加载时的并行度,即数据库中初始化数据的加载进程数量

terminals=1

//To run specified transactions per terminal- runMins must equal zero

//参数用于指定模拟终端数,即并发客户端数量

runTxnsPerTerminal=0

//To run for specified minutes- runTxnsPerTerminal must equal zero

//该参数用于指定每个终端提交事务数,每个终端运行的固定事务数量如果该值设置为10,意味着每个终端运行10个事务,如果有32个终端,那整体运行320个事务后。该参数unMins只能选择设置一个,如果该配置为非0值时,下面的runMins参数必须设置为0

runMins=3

//Number of total transactions per minute

//该参数用于指定运行时间,单位是分钟。该值设置为非0值时,runTxnsPerTerminal参数必须设置为0。如果这两个参数设置其中一个,另一个必须为0,主要区别是runMins定义时间长度来控制测试时间;runTxnsPerTerminal定义事务总数来控制时间。

limitTxnsPerMin=0

//Set to true to run in 4.x compatible mode. Set to false to use the

//entire configured database evenly.

//参数用于指定每分钟提交事务数限制

terminalWarehouseFixed=true

//该参数用于指定终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置。TPCC规定每个终端都必须有一个绑定的仓库,所以一般使用默认值true

//The following five values must add up to 100

//The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec

//五个值的总和必须等于100,默认值为4543444,与TPC-C测试定义的比例一致,实际操作过程中,可以调整比重来适应各种场景。

newOrderWeight=45

//客户输入一笔新的订货交易各个类型的交易在系统中所占的比例45%     

paymentWeight=43      

//更新客户账户余额以反应其支付状况各个类型的交易在系统中所占的比例43%

orderStatusWeight=4

//发货(批处理交易)各个类型的交易在系统中所占的比例4%

deliveryWeight=4

//查询客户最近交易的状态各个类型的交易在系统中所占的比例4%

stockLevelWeight=4

//查询仓库库存状况,各个类型的交易在系统中所占的比例4%

// Directory name to create for collecting detailed result data.

// Comment this out to suppress.

resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS

//测试数据生成目录,默认无需修改,默认生成在run目录下面,名字形如my_result_xxxx的文件夹

osCollectorScript=./misc/os_collector_linux.py

//操作系统性能收集脚本,默认无需修改,需要操作系统具备有python环境

osCollectorInterval=1

//操作系统收集操作间隔,默认为1秒

//osCollectorSSHAddr=user@dbhost

//操作系统收集所对应的主机,如果对本机数据库进行测试,该参数保持注销即可,如果要对远程服务器进行测试,请填写用户名和主机名。

osCollectorDevices=net_eth0 blk_sda

//操作系统中被收集服务器的网卡名称和磁盘名称

2.7、修改benchmarksql-5.0/run下的funcs.sh,添加dm数据库类型

2.8、新建dameng文件夹,添加DM数据库修改的驱动包

      在benchmarksql-5.0/lib目录下创建一个dameng目录,将dm数据库对应的jdbc驱动拷贝至该目录下,在实验中,DM数据库安装在/home/dmdba/dmdbms下。

cp -r /home/dmdba/dmdbms/ drivers/jdbc/DmJdbcDriver* /opt/benchmarksql-5.0/lib/dameng/

2.9、创建测试表,预加载测试数据(有两种预加载的方式)

        在benchmarksql-5.0/run/目录下存放着常用的工具:执行SQL工具(runSQL.sh)、执行数据装载工具(runLoader.sh)、执行测试工具(runBenchmark.sh)等。除此之外还有一些SQL初始化的语句,包括创建表、创建索引,清空表数据等脚本。

       A、在benchmarksql-5.0/run/下执行脚本./runDatabaseBuild.sh props.dm,执行该脚本会创建TPC-C标准模型中的9张表并按照props.dm设置的仓库数(warehouses)进行数据测试数据写入、主外键以及索引创建。

./runDatabaseBuild.sh props.dm

       B、在创建测试表的时候,可以使用runSQL.sh脚本来单独会创建TPC-C标准模型中的9张表以及索引,还可以使用runLoader.sh来设置仓库数(warehouses)进行数据测试数据

./runSQL.sh props.dm sql.common/tableCreates.sql

./runSQL.sh props.dm sql.common/indexCreates.sql

./runLoader.sh props.dm  numWarehouses 10

3、执行测试

       BenchmarkSQL测试会收集详细的性能指标,如果配置了操作系统参数收集,同样也会收集操作系统级别网卡和磁盘的性能指标,默认生成的数据在run/my_result_xx目录下。生成的报告可以通过脚本文件generateReport.sh + my_result_xx生成带有图形的HTML文件。生成图形的脚本generateReport.sh要求操作系统环境中已经安装了R语言。

3.1、开始测试TPC-C,在benchmarksql-5.0/run目录下执行:

./runBenchmark.sh props.dm

3.2、测试结果查看及结果说明:
       在测试完成后不仅会在屏幕打印出测试结果,还会在benchmarksql-5.0/run目录下生成一个my_result_+日期的文件夹,里面包含测试结果详细信息存储CSV文件

3.3、生成结果报告,在benchmarksql-5.0/run目录下执行:

      BenchmarkSQL测试会自动收集详细的性能指标,生成的报告还可以通过脚本文件generateReport.sh将 my_result_xx生成带有图形的HTML文件。

./generateReport.sh my_result_2020-04-02_030832

达梦云适配中心:http://eco.dameng.com

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值