关于Tpcc-MySQL
Tpcc-MySQL是percona基于TPC-C衍生出来的产品,专用于MySQL基准测试。用来测试数据库的压力工具,模拟一个电商的业务,主要的业务有新增订单,库存查询,发货,支付等模块的测试。
Tpcc-MySQL安装包
从github拖的:
https://github.com/Percona-Lab/tpcc-mysql
Tpcc表说明
tpcc-mysql的业务逻辑及其相关的几个表作用如下
New-Order:新订单,一次完整的订单事务,几乎涉及到全部表 Payment:支付,主要对应orders、history表 Order-Status:订单状态,主要对应 orders、order_line表 Delivery:发货,主要对应order_line表 Stock-Level:库存,主要对应stock表
其它表说明
客户:主要对应customer表 地区:主要对应district表 商品:主要对应item表 仓库:主要对应warehouse表
安装部署测试环境
1.编译安装
cd tpcc-mysql-master/src
make
编译完会在安装包根目录下生成两个文件tpcc_load和tpcc_start
2.创建Tpcc数据库
mysql -uroot -p -e "create database tpcc100"
3.导入Tpcc表结构
mysql -uroot -p tpcc100 < create_table.sql
4.创建主外键索引
mysql -uroot -p tpcc100 < add_fkey_idx.sql
数据加载
注:设置warehouse仓库数量越高,数据量越大。假设置为100,则有100个仓库,每个仓库有10万库存量,总共会加载1000W的库存数据。
单进程加载:
tpcc_load -h server_host -P port -d database_name -u mysql_user -p mysql_password
-w warehouses
并发加载(推荐):sh load.sh [dbname] [warehouse] sh load.sh tpcc100 100
执行后会起4个后台进程:
执行进度查看对应生成的.out日志。
开始benchmark
参数介绍:
-w warehouse:仓库数量 -c connection:并发连接数 -r warmup_time:预热时间 -l running_time:压测时间 -i 输出报告中的统计间隔
压测命令:
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 >> tpcc_report.txt
Tpcc-MySQL输出报告分析
开始部分,打印出所有的参数设置:
测试进行部分,每10秒输出一份统计结果,间隔时间由(-i)参数决定。 trx:10秒内的事务数 95%:95%的事务响应时间 99%:99%的事务响应时间 max_rt:最长事务响应时间 之后的为其他事务(订单,支付)的分别响应时间
结果输出:
Raw Results--第一次统计结果 [0]:New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数 [1]:Payment,支付业务统计,其他同上 [2]:Order-Status,订单状态业务统计,其他同上 [3]:Delivery,发货业务统计,其他同上 [4]:Stock-Level,库存业务统计,其他同上 Raw Results2--第二次统计结果,其他同上 transaction percentage:事务成功率,计算方式为上面的统计结果中(sc+lt) response time:响应时间,90%才算合格 Tpmc:每分钟事务数。