语言
<< 返回文章列表

GaussDB T 1.0.2分布式集群TPC-C之BenchmarkSQL性能测试

2020年3月16日
gelyon
239

墨天轮原文链接:https://www.modb.pro/db/22557

1.说明

本篇文章主要介绍在GaussDB T 1.0.2分布式集群下,如何用Benchmark工具进行压测。由于在分布式下创建表必须要指定分片键的,而默认的脚本是不指定的,因此需要对Benchmark工具做修改适配。

关于benchmark部署问题,这里不详述,之前有写过关于GaussDB T单机的benchmark压测,具体参考:GaussDB T 1.0.2单机环境TPC-C之BenchmarkSQL性能测试

2. 创建benchmark配置文件

在benchmarksql的run目录下,编辑测试的配置文件props.gs。
如图,红框内修改为正确的cn连接串,可以配置多个CN,从而实现负载均衡。
image.png

3.修改benchmark用例SQL脚本

在benchmarksql的run/sql.common目录下,修改测试用例所用的sql脚本,主要修改建表SQL,改成分布式create语法,分布式下建表需要分片。
如图:
image.png
这里注意,表上有主键唯一约束时,分片键要么加到主键列里,要么修改所有CN和主DN的数据库参数alter system set SHARD_CHECK_UNIQUE=false;

4. 初始化测试数据

进入benchmarksql的run目录下,运行./runDatabaseBuild.sh props.gs脚本,初始化测试数据,初始化加载数据时,分布式不支持外键和alter sequence,因此会报错,不影响。

5. 修改runBenchmark.sh脚本

进入benchmarksql的run目录下,修改runBenchmark.sh脚本。

# vi runBenchmark.sh
#!/usr/bin/env bash
......
......
source funcs.sh $1  --修改为绝对路径,如:source /software/benchmark/benchmarksql-5.0/run/funcs.sh $1......

6. 运行结果

# sh runBenchmark.sh props.gs
10:54:46,584 [main] INFO   jTPCC : Term-00,
10:54:46,609 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+10:54:46,609 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
10:54:46,609 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+10:54:46,609 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
10:54:46,610 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
10:54:46,613 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
10:54:46,613 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+10:54:46,613 [main] INFO   jTPCC : Term-00,
10:54:46,613 [main] INFO   jTPCC : Term-00, db=oracle
10:54:46,614 [main] INFO   jTPCC : Term-00, driver=com.huawei.gauss.jdbc.ZenithDriver
10:54:46,614 [main] INFO   jTPCC : Term-00, conn=jdbc:zenith:db:@192.168.179.126:8000,192.168.179.127:8000,192.168.179.128:8000,192.168.179.129:8000
10:54:46,614 [main] INFO   jTPCC : Term-00, user=aps3
10:54:46,614 [main] INFO   jTPCC : Term-00,
10:54:46,614 [main] INFO   jTPCC : Term-00, warehouses=20
10:54:46,615 [main] INFO   jTPCC : Term-00, terminals=10
10:54:46,617 [main] INFO   jTPCC : Term-00, runMins=5
10:54:46,617 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=0
10:54:46,618 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
10:54:46,618 [main] INFO   jTPCC : Term-00,
10:54:46,618 [main] INFO   jTPCC : Term-00, newOrderWeight=45
10:54:46,618 [main] INFO   jTPCC : Term-00, paymentWeight=43
10:54:46,618 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
10:54:46,618 [main] INFO   jTPCC : Term-00, deliveryWeight=4
10:54:46,618 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
10:54:46,619 [main] INFO   jTPCC : Term-00,
10:54:46,619 [main] INFO   jTPCC : Term-00, resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
10:54:46,619 [main] INFO   jTPCC : Term-00, osCollectorScript=null
10:54:46,619 [main] INFO   jTPCC : Term-00,
10:54:46,729 [main] INFO   jTPCC : Term-00, copied props.gs to my_result_2020-03-13_105446/run.properties
10:54:46,730 [main] INFO   jTPCC : Term-00, created my_result_2020-03-13_105446/data/runInfo.csv for runID 185
10:54:46,730 [main] INFO   jTPCC : Term-00, writing per transaction results to my_result_2020-03-13_105446/data/result.csv
10:54:46,730 [main] INFO   jTPCC : Term-00,
10:54:47,674 [main] INFO   jTPCC : Term-00, C value for C_LAST during load: 20910:54:47,675 [main] INFO   jTPCC : Term-00, C value for C_LAST this run:    10910:54:47,675 [main] INFO   jTPCC : Term-00,
Term-00, Running Average tpmTOTAL: 23408.76    Current tpmTOTAL: 778056    Memory Usage: 20MB / 202MB  

10:59:48,129 [Thread-5] INFO   jTPCC : Term-00,
10:59:48,147 [Thread-5] INFO   jTPCC : Term-00,
10:59:48,148 [Thread-5] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) = 10486.7810:59:48,148 [Thread-5] INFO   jTPCC : Term-00, Measured tpmTOTAL = 23401.510:59:48,148 [Thread-5] INFO   jTPCC : Term-00, Session Start     = 2020-03-13 10:54:4710:59:48,148 [Thread-5] INFO   jTPCC : Term-00, Session End       = 2020-03-13 10:59:4810:59:48,148 [Thread-5] INFO   jTPCC : Term-00, Transaction Count = 117058

7. 总结

实际在测试时,需要根据资源配置,调整GTS、CN、DN的参数,以及temp、undo、redolog等,来满足压测标准,这里不详述。


相关阅读:

1. GaussDB T 性能调优——硬件环境
https://www.modb.pro/db/22263


2. GaussDB T 性能调优——SQL问题分析之常见问题和案例分析
https://www.modb.pro/db/22261


3. GaussDB T 性能调优——SQL问题分析之CBO trace 日志 
https://www.modb.pro/db/22258