GaussDB T 1.0.2分佈式集群TPC-C之BenchmarkSQL性能測試

原文鏈接:https://www.modb.pro/db/22557?03=(複製至瀏覽器,即可查看)


摘要:本文介紹TPC-C之BenchmarkSQL對GaussDB T分佈式集群數據庫進行性能壓測。由於在分佈式下創建表必須要指定分片鍵的,而默認的腳本是不指定的,因此需要對Benchmark工具做修改適配。

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,從而實現負載均衡。

GaussDB T 1.0.2分佈式集群TPC-C之BenchmarkSQL性能測試

3.修改benchmark用例SQL腳本

在benchmarksql的run/sql.common目錄下,修改測試用例所用的sql腳本,主要修改建表SQL,改成分佈式create語法,分佈式下建表需要分片。如圖:

GaussDB T 1.0.2分佈式集群TPC-C之BenchmarkSQL性能測試

這裡注意,表上有主鍵唯一約束時,分片鍵要麼加到主鍵列裡,要麼修改所有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腳本。

<code># vi runBenchmark.sh 
#!/usr/bin/env bash
......
......
source funcs.sh $1 --修改為絕對路徑,如:source /software/benchmark/benchmarksql-5.0/run/funcs.sh $1
......
/<code>

6. 運行結果

<code># 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
/<code>

7. 總結

實際在測試時,需要根據資源配置,調整GTS、CN、DN的參數,以及temp、undo、redolog等,來滿足壓測標準,這裡不詳述。


分享到:


相關文章: