1.下载tpcc-mysql
官方:https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql
官方github:https://github.com/Percona-Lab/tpcc-mysql
2.编译源码
cd /tpcc-mysql/src
make
3.创建数据库和表
mysql -uUserName -pPassword -e 'create database tpcctest'
mysql -uUserName -pPassword -D tpcctest < ./create_table.sql #创建表
mysql -uUserName -pPassword -D tpcctest < add_fkey_idx.sql #创建FK和索引
4.加载数据(./tpcc_load命令)
命令格式说明:
$ ./tpcc --help
*************************************
*** TPCC-mysql Data Loader ***
*************************************
./tpcc_load: invalid option -- '-'
Usage: tpcc_load
-h server_host
-P port
-d database_name
-u mysql_user
-p mysql_password
-w warehouses #即数据库大小,10大概是900MB左右
-l part
-m min_wh
-n max_wh
* [part]: 1=ITEMS 2=WAREHOUSE 3=CUSTOMER 4=ORDERS
加载命令:
/tpcc_load -h 127.0.0.1 -P 3306 -d tpcctest -u userName -p passWord -w 10
命令格式说明:
$ ./tpcc_start --help
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
./tpcc_start: invalid option -- '-'
Usage: tpcc_start
-h server_host
-P port
-d database_name
-u mysql_user
-p mysql_password
-w warehouses #仓库数量
-c connections #并发连接数,就是模拟多少个用户同时访问
-r warmup_time #预热时间
-l running_time #测试时间
-i report_interval #生成报告间隔时长
-f report_file #生成报告文件名
-t trx_file
测试命令:
./tpcc_start -h 127.0.0.1 -P 3306 -d tpcctest -u userName -p passWord \
-w 10 -c 32 -r 10 -l 10 \
-f tpcc_mysql_20190416.log >> tpcc_run_result_20190416.log 2>&1
## 后面 >> tpcc_run_result_20190416.log 2>&1
## 主要是将命令控制台输出和错误输出重定向至 tpcc_run_result_20190416.log 方便查看
结果说明(tpcc_run_result_20190416.log):
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '127.0.0.1'
option P with value '3306'
option d with value 'tpcctest'
option u with value 'root'
option p with value 'szw666'
option w with value '10'
option c with value '32'
option r with value '10'
option l with value '10'
option f with value 'tpcc_mysql_20140921.log'
[server]: 127.0.0.1
[port]: 3306
[DBname]: tpcctest
[user]: root
[pass]: szw666
[warehouse]: 10
[connection]: 32
[rampup]: 10 (sec.)
[measure]: 10 (sec.)
RAMP-UP TIME.(10 sec.)
MEASURING START.
10, trx: 189, 95%: 3638.024, 99%: 4833.223, max_rt: 4986.919, 198|4667.067, 20|980.516, 20|3770.746, 15|9859.134
STOPPING THREADS................................
#10 - 第一个10s
#trx: 189 - 给定间隔的New Order 的 transaction 数量
#95%: 3638.024 - 给定间隔95%的New Order transactions的reponse time
#max_rt: 4986.919 - 最大New Order transactions的reponse time
#剩余的都是别的transactions的trx和最大response time
[0] sc:0 lt:189 rt:0 fl:0 avg_rt: 1450.8 (5) #New Order 新订单业务
[1] sc:43 lt:155 rt:0 fl:0 avg_rt: 1018.9 (5) #Payment 支付业务
[2] sc:6 lt:14 rt:0 fl:0 avg_rt: 243.2 (5) #Order-Status 订单状态统计业务
[3] sc:3 lt:17 rt:0 fl:0 avg_rt: 988.6 (80) #Delivery 发货统计业务
[4] sc:0 lt:15 rt:0 fl:0 avg_rt: 10501.1 (20) #Stock-Level 库存统计业务
in 10 sec.
# sc:成功数量 lt:延迟数量 fl:失败数量 avg_rt:平均response time
[0] sc:0 lt:189 rt:0 fl:0
[1] sc:43 lt:155 rt:0 fl:0
[2] sc:6 lt:14 rt:0 fl:0
[3] sc:3 lt:17 rt:0 fl:0
[4] sc:0 lt:15 rt:0 fl:0
(all must be [OK])
[transaction percentage]
Payment: 44.80% (>=43.0%) [OK]
Order-Status: 4.52% (>= 4.0%) [OK]
Delivery: 4.52% (>= 4.0%) [OK]
Stock-Level: 3.39% (>= 4.0%) [NG] *
[response time (at least 90% passed)]
New-Order: 0.00% [NG] *
Payment: 21.72% [NG] *
Order-Status: 30.00% [NG] *
Delivery: 15.00% [NG] *
Stock-Level: 0.00% [NG] *
# 和标准比较 [OK] 合格 [NG] 不合格
1134.000 TpmC
#每分钟事务数
参考:tpcc-mysql安装、使用、结果解读