PS: 先在mysql中创建 root 用户,或自定义其他用户,配到props.mysql配置文件中。
登录mysql ,创建tpcc数据库用于测试
mysql -uroot -p
create databases tpcc;
show databases;
use tpcc;
show tables;
1. 修改配置文件: props.mysql
db=mysql
driver=com.mysql.cj.jdbc.Driver
conn=jdbc:mysql://localhost:3306/tpcc
user=tpcc
password=******
warehouses=1
loadWorkers=4
terminals=1
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=10
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=0
//Number of total transactions per minute
limitTxnsPerMin=300
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true
//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
osCollectorDevices=net_eth0 blk_sda
参数说明如下:
参数 | 说明 | |
---|---|---|
conn | 192.168.222.120 | 数据库服务器地址,以实际情况为准。 |
3306 | MySQL数据库端口,以实际情况为准。 | |
tpcc | 数据库名称,以实际情况为准,本例中为tpcc。 | |
user和password | root和123456 | 修改为创建数据库tpcc的账号和密码。 |
warehouses | 1000 | 初始化加载数据时,需要创建多少仓库的数据。例如200,标识创建200个仓库数据,每一个数据仓库的数据量大概是76823.04KB,可有少量的上下浮动,因为测试过程中将会插入或删除现有记录。 数据量:每个仓库里有9张表,bmsql_order_line表数据量最大30w/1warehouses,60w/2warehouses.... |
loadworker | 100 | 加载数据时,每次提交进程数。 |
参数 | 说明 |
---|---|
terminals | 终端数量,指同时有多少终端并发执行,表示并发程度。遍历值140,170,200。 |
runTxnsPerTerminal | 每分钟每个终端执行的事务数。 |
runMins | 执行多少分钟,例如15分钟。与terminals配合使用。与终端数量,每个终端每分钟执行事务数配合使用 |
limitTnxsPermin | 每分钟执行的事务总数。(数据库服务器,测试吞吐量时,需要将此值设置极大(无限大),这样就能够保证不会出现某个终端sleep现象。) |
terminalWarehouseFixed | 用于指定终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置。 |
2.创建数据,一步完成 创建表、生成测试数据、导入数据,及创建索引,外键等。
PS: 需要指定数据库类型对应的配置文件 ,如 mysql 数据库,对应的配置文件为props.mysql
./runDatabaseBuild.sh props.mysql
PS: 如果没有授权先授权 ,命令: chmod 777 *.sh
3. 测试数据
./runBenchmark.sh props.mysql
结果:
17:05:30,476 [Thread-1] INFO jTPCC : Term-00, nt tpmTOTAL: 84 Memory Usage: 19MB / 37MB
17:05:30,477 [Thread-1] INFO jTPCC : Term-00,
17:05:30,477 [Thread-1] INFO jTPCC : Term-00, Measured tpmC (NewOrders) = 147.63
17:05:30,477 [Thread-1] INFO jTPCC : Term-00, Measured tpmTOTAL = 324.8
17:05:30,478 [Thread-1] INFO jTPCC : Term-00, Session Start = 2021-01-11 17:05:28
17:05:30,478 [Thread-1] INFO jTPCC : Term-00, Session End = 2021-01-11 17:05:30
17:05:30,478 [Thread-1] INFO jTPCC : Term-00, Transaction Count = 10
执行结束后,关注tpmTOTAL值。
说明:
tpm(transactions per minute)每分钟事物处理个数。
并会在 run/ 目录下生成result 目录,查看结果报告
my_result_2021-01-11_170527
4. 结果绘图,生成报告(PS:需要R语言环境)
./generateGraphs.sh my_result_2021-01-11_170527/
5. 清空数据
./runDatabaseDestroy.sh props.mysql
参考: https://blog.csdn.net/ctypyb2002/article/details/91364123
参考: https://support.huaweicloud.com/tstg-kunpengdbs/kunpengbenchmarksql_06_0004.html