暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 gelyon 2020-03-13
3732

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: 209 10:54:47,675 [main] INFO jTPCC : Term-00, C value for C_LAST this run: 109 10: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.78 10:59:48,148 [Thread-5] INFO jTPCC : Term-00, Measured tpmTOTAL = 23401.5 10:59:48,148 [Thread-5] INFO jTPCC : Term-00, Session Start = 2020-03-13 10:54:47 10:59:48,148 [Thread-5] INFO jTPCC : Term-00, Session End = 2020-03-13 10:59:48 10:59:48,148 [Thread-5] INFO jTPCC : Term-00, Transaction Count = 117058

7. 总结

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

最后修改时间:2020-03-13 14:42:13
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论