mysql压力测试工具tpcc-mysql安装测试使用

     今天准备给mysql做个压力测试,所以就相装个tpcc-mysql压一把看看,尼玛网上一搜基本都是一个模子里出来的,下载tpcc-mysql全是一个网站(不是官网),而且还是14年的,下边我是从官网下载的

tcpp-mysql项目地址在这里:https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql

现在tpcc-mysql代码都放到github上了,

地址:https://github.com/Percona-Lab/tpcc-mysql

代码下载地址:https://github.com/Percona-Lab/tpcc-mysql/archive/master.zip

1:我把代码下载在/opt目录里

 wget https://github.com/Percona-Lab/tpcc-mysql/archive/master.zip

下载下来是个名为master.zip的包,我把他改成tpcc-mysql-master.zip,用mv就可以该名称mvmaster.ziptpcc-mysql-master.zip

2:打开包 unzip tpcc-mysql-master.zip

  进入/opt/tpcc-mysql-master/src

 执行 make命令出现如下界面

mysql压力测试工具tpcc-mysql安装测试使用_第1张图片

这个时候进入/opt/tpcc-mysql-master目录会看到生成了两个文件:tpcc_load ,tpcc_start

tpcc_load  提供初始化数据的功能
 
tpcc_start 进行压力测试


/opt/tpcc-mysql-master目录下有几个sql文件挺重要的

create_table.sql:创建所需的数据库表,共9个表
add_fkey_idx.sql:创建索引和外键
drop_cons.sql:删除约束


进入/opt/tpcc-mysql-master目录,执行

./tpcc_load localhost tpcc100 root 'root' 1如果报

mysql压力测试工具tpcc-mysql安装测试使用_第2张图片

则有可能是下载的包有问题,需要换个包

下载地址:http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz

下载到本地/opt/目录下

  1:先执行 gunzip 解压缩文件比如gunziptpcc-mysql-src.tgz

  2:然后解包 tar -xf 解包

进入/opt/tpcc-mysql/src

 执行 make命令出现如下界面

直接 tar zxf 可能会报告异常
执行./tpcc_load localhost tpcc100 root 'root' 1这时就不会报错了


创建表结构:

 mysql -S /tmp/mysql3306.sock -u root -p tpcc100<create_table.sql;

 mysql -S /tmp/mysql3306.sock -u root -p tpcc100<add_fkey_idx.sql;


导入数据:./tpcc_load localhost tpcc100 root 'root' 1

tpcc_load [server] [DB] [user] [pass] [warehouse]
Server: 服务器名
DB: 数据库名
user: 用户名
pass: 密码
Warehouse: 仓库的数量 ,一般不小于100,ssd的大于1000,我本地是虚拟机环境,所以设置为1

tpcc_start压测:

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
各个参数的用法:
-h server_host: 服务器名
-P port : 端口号,默认为3306
-d database_name: 数据库名
-u mysql_user : 用户名
-p mysql_password : 密码
-w warehouses: 仓库的数量
-c connections : 指定并发连接数,默认为1
-r warmup_time : 热身时间,单位:s,默认为10s ,热身是为了将数据加载到内存。
-l running_time: 测试时间,单位:s,默认为20s
-i report_interval: 指定生成报告间隔时长
-f report_file: 测试结果输出文件


./tpcc_start -hlocalhost -d tpcc100 -u root -p 'root' -w 1 -c 2 -r 20 -l 300 -f tpcc_mysql_02.log

mysql压力测试工具tpcc-mysql安装测试使用_第3张图片

没10秒出一次压测数据

mysql压力测试工具tpcc-mysql安装测试使用_第4张图片

上图以逗号分隔,共6列
   第一列,第N次10秒
   第二列,新订单成功执行压测的次数(推迟执行压测的次数):90%事务的响应时间|本轮测试最大响应时间,新订单事务数也被认为是总有效事务数的指标
   第三列,支付业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间
   第四列,订单状态业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间
   第五列,物流发货业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间
   第六列,库存仓储业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间

压测结束,下边是两次统计结果

mysql压力测试工具tpcc-mysql安装测试使用_第5张图片

解释:

  [0] New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数

  [1] sc:100552  lt:0  rt:0  fl:0    -- Payment,支付业务统计,支付业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数

  [2] sc:10059  lt:0  rt:0  fl:0    -- Order-Status,订单状态业务统计,订单状态业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数

  [3] sc:10057  lt:0  rt:0  fl:0    -- Delivery,发货业务统计,发货业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数

  [4] sc:10058  lt:0  rt:0  fl:0    -- Stock-Level,库存业务统计,库存业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数

mysql压力测试工具tpcc-mysql安装测试使用_第6张图片

Payment 付业务占总业务43.47%


2078.000 TpmC   //TpmC结果值(每分钟事务数,该值是第一次统计结果中的新订单事务数除以总耗时分钟数,例如本例中是:10391/300/60 = 2078

script目录下的一些脚本主要是一些性能数据采集以及分析的

你可能感兴趣的:(mysql)