vlambda博客
学习文章列表

鲲鹏和海光 CPU 架构环境 BenchmarkSQL 压测达梦数据库

【作者】icycastle,某证券公司 DBA


近期由于工作需要,研究对比了下达梦数据库运行在 ARM 和海光两款 CPU 上的性能,本文把测试过程做了简要的记录。

首先,我们选择了 BenchmarkSQL 这款开源软件作为 TPCC 压测的工具。这款工具采用标准的 TPC-C 模型,支持 JDBC 连接,原生支持 Oracle 和 PostgreSQL 。

BenchmarkSQL 通过 JDBC 接口连接数据库,所以通过简单的修改和配置就可以支持其它数据库了,这边就介绍下如何支持达梦数据库。

1 、为 BenchmarkSQL 配置达梦数据库 java 驱动

登录压测目标数据库,达梦数据库安装软件目录可以找到 java 驱动,我的环境下是 /home/dmdba/dmdbms/drivers/jdbc/DmJdbcDriver18.jar ;

将这个 jar 包复制到压力测试服务器(安装 BenchmarkSQL 的服务器),可以放在 /benchmarksql-5.0/lib/dm 下,( dm 目录自己创建)。

2 、修改 benchmarksql-5.0/src/client 下的 jTPCC.java ,增加 dm 相关部分

if (iDB.equals("firebird"))

dbType = DB_FIREBIRD;

else if (iDB.equals("oracle"))

dbType = DB_ORACLE;

else if (iDB.equals("postgres"))

dbType = DB_POSTGRES;

else if (iDB.equals("dm"))

dbType = DB_UNKNOWN;

else

{

log.error("unknown database type '" + iDB + "'");

return;

}

3 、使用 ant 编译源码

安装 ant

yum install ant.noarch -y

[root@perform-db-1 benchmarksql-5.0]# pwd

/benchmarksql-5.0

[root@perform-db-1 benchmarksql-5.0]# ant

Buildfile: /benchmarksql-5.0/build.xml

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

在 benchmarksql-5.0/lib 目录下创建一个 dm 目录,将对应的 jdbc 驱动拷贝至该目录下,然后修改 funcs.sh 文件

function setCP()

{

case "$(getProp db)" in

firebird)

cp="../lib/firebird/:../lib/"

;;

oracle)

cp="../lib/oracle/*"

if [ ! -z "${ORACLE_HOME}" -a -d ${ORACLE_HOME}/lib ] ; then

cp="${cp}:${ORACLE_HOME}/lib/*"

fi

cp="${cp}:../lib/*"

;;

postgres)

cp="../lib/postgres/:../lib/"

;;

dm)

cp="../lib/dm/:../lib/"

;;

esac

myCP=".:${cp}:../dist/*"

export myCP

case "$(getProp db)" in

firebird|oracle|postgres|dm)

;;

"") echo "ERROR: missing db= config option in ${PROPS}" >&2

exit 1

;;

*) echo "ERROR: unsupported database type 'db=$(getProp db)' in ${PROPS}" >&2

exit 1

;;

Esac

5 、修改 benchmarksql-5.0/run/runDatabaseBuild.sh

去掉 AFTER_LOAD 中的 extraHistID

到这里, BenchmarkSQL 压测软件就支持达梦数据库了。

6 、目标数据库创建用户和表空间

su - dmdba/dbdma

dmdba@dm-test-1:~$ disql SYSDBA/SYSDBA@dm-test-1:32141

create tablespace tpcctbs datafile '/dmdb/data/DAMENG/tpcctbs01.dbf' size 128 autoextend on maxsize unlimited;

alter tablespace tpcctbs add datafile '/dmdb/data/DAMENG/tpcctbs02.dbf' size 128 autoextend on maxsize unlimited;

alter tablespace tpcctbs add datafile '/dmdb/data/DAMENG/tpcctbs03.dbf' size 128 autoextend on maxsize unlimited;

alter tablespace tpcctbs add datafile '/dmdb/data/DAMENG/tpcctbs04.dbf' size 128 autoextend on maxsize unlimited;

create user tpcc identified by "****" default tablespace tpcctbs;

grant resource to tpcc;

grant dba to tpcc;

7 、修改 BenchmarkSQL 达梦数据库连接的配置文件

进入 benchmarksql-5.0/run 目录,使用 props.ora 复制一个 props.dm 文件出来

修改 props.dm 文件,修改连接数据库的 IP 和账号信息,设置 TPC-C 的仓库数和压测并发数,内容参考如下。

$ cat props.dm

db=dm

driver=dm.jdbc.driver.DmDriver

conn=jdbc:dm://x.x.x.x:5236

user=tpcc

password=****

warehouses=4

loadWorkers=4

terminals=32

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

runTxnsPerTerminal=0

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

runMins=15

//Number of total transactions per minute

limitTxnsPerMin=0

….

8 、初始化 TPC-C 模型数据

./runDatabaseBuild.sh props.dm

9 、执行 benchmark 压测

./runBenchmark.sh props.dm

可以反复修改仓库和并发数,重新初始化数据,进行多次压测

warehouses=30

loadWorkers=5

terminals=8

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

runTxnsPerTerminal=0

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

runMins=5

//Number of total transactions per minute

limitTxnsPerMin=100000

修改完成之后需要重新 reduild benchmark 然后再进行测试。

./runDatabaseDestroy.sh props.dm

./runDatabaseBuild.sh props.dm

10、查看测试报告

默认生成的数据在 run 目录下,以日期命名:

$ pwd

/benchmarksql-5.0/run

ls myresult*

11、鲲鹏和海光 CPU 的数据库性能测试比较

压测数据库 1 :使用鲲鹏 920CPU 虚拟机, 8 核, 16G 内存,操作系统是麒麟 v10sp1 ,不同并发度的压测数据如下:

鲲鹏和海光 CPU 架构环境 BenchmarkSQL 压测达梦数据库

压测数据库 2 :使用海光 7285CPU 虚拟机, 8 核, 16G 内存,操作系统是麒麟 v10sp1 ,不同并发度的压测数据如下:

鲲鹏和海光 CPU 架构环境 BenchmarkSQL 压测达梦数据库

对比两款 CPU 在不同并发下的性能表现:

鲲鹏和海光 CPU 架构环境 BenchmarkSQL 压测达梦数据库

小结:使用同等配置的两台信创服务器(虚拟机),安装达梦数据库,使用 benchmarkSQL 5.0 进行 TPCC 压力测试,测试结果如上表格。在 1-16 并发的情况下,两款信创环境的性能表现基本一致,在 24-40 并发的情况下,鲲鹏的表现优于海光。

注:数据库性能受众多因素影响,以上数据仅代表笔者测试环境的性能表现。

原题:鲲鹏和海光CPU架构环境BenchmarkSQL 压测达梦数据库

点击文末阅读原文,可以到原文下留言交流

觉得本文有用,请转发、点赞或点击“在看”,让更多同行看到


 资料/文章推荐:




■ 欢迎读者以各种形式转发,网站等平台如无作者授权请勿擅自转载

下载 twt 社区客户端 APP

鲲鹏和海光 CPU 架构环境 BenchmarkSQL 压测达梦数据库

或到应用商店搜索“twt”