達夢數據庫的TPCC測試記錄

達夢數據庫的TPCC測試記錄

測試環境
本文主要目的是介紹使用 benchmarksql工具進行 TPCC 測試的步驟
使用工具版本:benchmarksql-4.1.1

服務器:華爲泰山v1
CPU:海思1616 32核x2;
內存:192G;
硬盤:1.2Tx5
系統:中標麒麟 release V7Update6/(Chromium)-aarch64

1.上傳數據庫的驅動包jar文件
上傳目錄:/home/setup/tpcc/benchmarksql-4.1.1/lib/

2.初始化相關配置
1、創建測試用戶
[root@oracle dm7]# su - dmdba
[dmdba@yun201 dmdbms]$ cd /dm7/bin
[dmdba@yun201 bin]$ ./disql SYSDBA/SYSDBA@localhost

create tablespace TPCC datafile 'TPCC01.dbf' size 128 autoextend on maxsize unlimited;
create user BENCHMARKSQL identified by "123456789" default tablespace TPCC;
grant DBA to BENCHMARKSQL;

2、配置props.dm腳本內容
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://IP地址:端口號
user=BENCHMARKSQL
password=123456789

warehouses=100
terminals=144
//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=0

//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4

注:runMins=5 表示測試時間爲 5分鐘

3.創建表
包含創建表語句,擴庫以及日誌文件、優化表語句
先在sqlTableCreates_DM這個文件裏編寫SQL語句
[root@isdtest run]#cd /home/setup/tpcc/benchmarksql-4.1.1/run
[root@isdtest run]# ./runSQL.sh props.dm dm01_sqlTableCreates

-bash: ./runSQL.sh: 權限不夠
如果有提示這個執行權限不夠,將執行賦值權限操作:
[root@isdtest run]# chmod -R 755 /home/setup/tpcc/benchmarksql-4.1.1

4.創建索引
[root@isdtest run]#./runSQL.sh props.dm dm02_sqlIndexCreates

5.裝載數據
模擬真實業務的交易數據
[root@isdtest run]#./runLoader.sh props.dm numWarehouses 100
這步需要等待一會時間,性能好的20分鐘,泰山服務器60分鐘

提示以下信息表示執行裝載數據完成。

6.修改數據庫參數

手動修改數據庫的參數,如達夢數據庫 dm.ini 的下列參數:
MAX_OS_MEMORY = 100
MEMORY_POOL = 1000
BUFFER = 100000
BUFFER_POOLS = 101
FAST_POOL_PAGES = 90000
FAST_ROLL_PAGES = 80000
RECYCLE = 8
MULTI_PAGE_GET_NUM = 64
MAX_BUFFER = 100000
VM_MEM_HEAP = 0
WORKER_THREADS = 24
WORK_THRD_STACK_SIZE = 512
CKPT_RLOG_SIZE = 0
CKPT_INTERVAL = 3600
CKPT_DIRTY_PAGES = 0
FORCE_FLUSH_PAGES = 0
IO_THR_GROUPS =12
CHECK_DB_IS_ACTIVE = 0
BDTA_SIZE = 20
ENABLE_SPACELIMIT_CHECK = 0
RLOG_PARALLEL_ENABLE = 1
RLOG_RESERVE_SIZE = 0
SESS_CHECK_INTERVAL = 30
FAST_RELEASE_SLOCK = 0
NOWAIT_WHEN_UNIQUE_CONFLICT = 1
UNDO_EXTENT_NUM = 32
UNDO_RETENTION = 1
MAX_SESSIONS = 1000
SUBQ_EXP_CVT_FLAG = 0
PURGE_DEL_OPT = 1
ENABLE_FREQROOTS = 2
CACHE_POOL_SIZE = 100
DICT_BUF_SIZE = 20
ENABLE_MONITOR = 0

注 1:BUFFER 估算公式爲:單庫不超過 100M,BUFFER>= 100M * 庫個數。內存允許的 情況下,可以放大。
注 2:WORKER_THREADS 估算公式爲:WORKER_THREADS = 系統邏輯 cpu 個數

注 3:IO_THR_GROUPS 估算公式爲:IO_THR_GROUPS =系統邏輯 cpu 個數 / 2
注 4:BDTA_SIZE=20 和 UNDO_RETENTION<=3 必須同時設置
注 5:N_PLN_POOLS=17 老版本有用,新版本廢棄。

7.重啓服務器
service DmServiceDMSERVER restart

8.預加載數據到內存
[root@isdtest run]#./runSQL.sh props.dm dm03_sqlCount

9.執行測試
修改 log4j.xml
確保配置文件有這條配置,如果沒有,手動添加(壓力機硬件較差的情況會對測試結果造成巨大影響):
<param name="Threshold" value="info"/>

執行命令如下:
[root@isdtest ~]# cd /home/setup/tpcc/benchmarksql-4.1.1/run
[root@isdtest ~]# ./runBenchmark.sh props.dm
這步需要等待一會時間,執行提示多版本操作衝突過多,先忽略。

注:測試結果日誌文件目錄:run/log/benchmarksql.log
達夢數據庫的TPCC測試記錄

benchmarksql.log測試結果說明
Measured tpmC (NewOrders) = 196182.35,每分鐘新訂單數爲19萬多,每秒196182/60=3269多交易,新訂單佔比45%左右
Measured tpmTOTAL = 436217.74,每分鐘處理的總數爲43萬多,每秒196182/60=7270多交易
Transaction Count = 2181364,5分鐘處理的總數218萬多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章