关于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

Tpcc-MySQL介绍_java

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个后台进程:

Tpcc-MySQL介绍_java_02

  执行进度查看对应生成的.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输出报告分析

开始部分,打印出所有的参数设置:

Tpcc-MySQL介绍_java_03

测试进行部分,每10秒输出一份统计结果,间隔时间由(-i)参数决定。
trx:10秒内的事务数
95%:95%的事务响应时间
99%:99%的事务响应时间
max_rt:最长事务响应时间
之后的为其他事务(订单,支付)的分别响应时间

Tpcc-MySQL介绍_java_04


  结果输出:

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:每分钟事务数。