注册
达梦数据库BenchmarkSQL部署和压力测试
技术分享/ 文章详情 /

达梦数据库BenchmarkSQL部署和压力测试

谷顾咕 2026/07/02 46 0 0

1. 前言

本篇将在银河麒麟V10操作系统和两节点DSC数据库的前提条件下进行 BenchmarkSQL 压测工具的部署和数据库压测
文章中使用的安装包、依赖包、JDBC等已整理上传网盘,有需要可以自取

https://pan.baidu.com/s/1eyO9spERojAJ3iv2vShDYQ?pwd=m68b

2. BenchmarkSQL 部署

2.1 配置yum源

生产环境中已配置了 yum 源或测试环境中能连接互联网的情况下可以直接安装依赖包,本次测试不具备以上条件,我们使用银河麒麟操作系统 ISO 镜像配置本地 yum 源

  1. 在 VMWARE中挂载 ISO 镜像

    image.png

  2. 挂载镜像到本地目录

    mount /dev/cdrom /mnt/
  3. 配置 repo 文件

    #备份原repo文件 cd /etc/yum.repos.d/ mv kylin_x86_64.repo kylin_x86_64.repo.bak #编辑新的repo文件 vi local.repo [base] name=kylin v10 baseurl=file:///mnt gpgcheck=0 enable=1
  4. 测试 yum 源

    yum clean all yum makecache

    image.png

2.2 安装依赖包

yum install gcc glibc-headers gcc-c++ gcc-gfortran readline-devel libXt-devel pcre-devel libcurl libcurl-devel -y yum install ncurses ncurses-devel autoconf automake zlib zlib-devel bzip2 bzip2-devel xz-devel -y yum install java-1.8.0-openjdk -y yum install pango-devel pango libpng-devel cairo cairo-devel -y yum install python -y

2.3 编译安装R语言

将提前准备好的 apache-ant-1.9.16-bin、R-3.6.3、benchmarksql-5.0、DmJdbcDriver18 压缩包上传至服务器

tar -xzvf R-3.6.3.tar.gz cd R-3.6.3/ ./configure && make && make install

2.4 安装 ant

tar -xzvf apache-ant-1.9.16-bin.tar.gz -C /usr/local vi /etc/profile export ANT_HOME=/usr/local/apache-ant-1.9.16 export PATH=$PATH:$ANT_HOME/bin source /etc/profile

2.5检查安装情况

java -version ant -version R --version

image.png

2.6 解压 BenchmarkSQL

unzip benchmarksql-5.0.zip

3. 编译安装 BenchmarkSQL

3.1 修改配置文件以兼容达梦数据库

BenchmarkSQL 原生不支持达梦数据库,我们需要修改配置文件并添加 jdbc 文件来实现对达梦的兼容

cd benchmarksql-5.0/src/client vi jTPCC.java #参考截图,添加以下内容 else if (iDB.equals("dm")) dbType = DB_UNKNOWN;

image.png

创建依赖文件目录并放入 jdbc 驱动

mkdir benchmarksql-5.0/lib/dm mv ~/DmJdbcDriver18.jar ~/benchmarksql-5.0/lib/dm/

3.2 编译安装

#使用ant编译安装BenchmarkSQL cd benchmarksql-5.0/ ant

image.png

编译报错,缺少 jar 文件

#本地查找是否有tools.jar文件,将其放在JAVA_HOME的lib目录下 find / -name tools.jar cp /dmdb/dmdbms/jdk/lib/tools.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-10.ky10.x86_64/jre/lib/

重新编译

image.png

这次编译成功了

4. 编辑 props 文件

复制 oracle 的 props 文件作为模板修改

cd benchmarksql-5.0/run cp props.ora props.dm

测试数据库为DSC集群,为体现集群的高可用,配置服务名

image.png

参考以下截图修改 props.dm

image.png

props 参数解析如下

参数 说明
db 连接的数据库类型
driver 连接数据库的驱动类的完整名称
conn JDBC连接URL
user/password 用于登录数据库的用户名和密码
warehouses 数据仓库的数量,决定了测试数据量和最终性能指标。一个仓库大约占用100MB空间,并会模拟一个并发用户
terminals 并发终端数,即模拟的并发用户数。通常设置为CPU总线程数的2-6倍进行初步测试
loadWorkers 装载数据阶段时并行加载数据的线程数
application 客户端类型。Generic 是标准模式,适用于所有数据库;PostgreSQLStoredProcOracleStoredProc 使用存储过程,可大幅减少网络往返
sutThreads 应用线程数
monkeys “猴子”线程数,用于处理终端的输入输出
terminalWarehouseFixed 是否固定终端与仓库的绑定。TPC-C标准要求每个终端固定绑定一个仓库,所以应设为 true
runMins 测试运行的总时长(分钟)。如果设置了这个,runTxnsPerTerminal 参数必须为0
runTxnsPerTerminal 每个终端执行的固定事务数。如果设置了这个,runMins 参数必须为0
newOrderWeight 新订单事务占比,TPC-C标准模型推荐值为45
paymentWeight 支付事务占比,标准值为43
orderStatusWeight 订单状态查询占比,标准值为4
deliveryWeight 发货事务占比,标准值为4
stockLevelWeight 库存水平查询占比,标准值为4
limitTxnsPerMin 限制整个系统每分钟处理的总事务数。设为0表示不限制
rampupMins 正式测试前的预热时间(分钟),这期间的数据不计入最终结果

5. 性能测试

5.1 创建对应表空间和用户

create tablespace benchmarksql datafile '+DMDATA/data/DMDB/benchmarksql01.dbf' size 4096 autoextend off; create user benchmarksql identified by "Benchmarksql#1234" default tablespace benchmarksql; grant "PUBLIC","RESOURCE","SOI","VTI" to benchmarksql; grant unlimited tablespace to benchmarksql; alter user benchmarksql quota unlimited on benchmarksql;

5.2 开始测试

#修改funcs.sh以兼容达梦 cd /root/benchmarksql-5.0/run vi funcs.sh #参考截图修改脚本

image.png

创建压测表并装载数据

./runDatabaseBuild.sh props.dm

image.png

数据装载完成,开始压测

./runBenchmark.sh props.dm

image.png

image.png

性能测试结果TPM为5290

生成压测报告,压测报告是一个文件夹,拿到本地用浏览器打开其中的HTML文件

./generateReport.sh my_result_2026-05-13_212538/

image.png

image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服