Tpcc-Mysql 压测工具使用

来源:互联网 发布:excel复制整列数据 编辑:程序博客网 时间:2024/06/08 15:05
一、下载与安装
1、下载软件:
http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz
2、设置mysql的环境变量
export PATH=/usr/local/mysql/bin:$PATH
3、解压
gunzip tpcc-mysql-src.tgztar -xf tpcc-mysql-src.tar
4、切换到tpcc-mysql/src目录,执行:make

二、测试使用
1、切换到mysql-tpcc目录,创建tcpp库、表、索引
mysqladmin -uroot -prootroot -S /data/mysqldata/3306/mysql.sock create tpccmysql -uroot -prootroot -S /data/mysqldata/3306/mysql.sock  tpcc<create_table.sqlmysql -uroot -prootroot -S /data/mysqldata/3306/mysql.sock  tpcc<add_fkey_idx.sql
2、检查
ll  /usr/lib64/libmysqlclient.so.18
# 如果有,下面的软连接操作省略
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
3、tpcc_load用法如下:(选项 warehouse 意为指定测试库下的仓库数量)
tpcc_load [server] [DB] [user] [pass] [warehouse]
或者
tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh]
4、初始化数据(灌入测试数据)
/data/tpcc-mysql/tpcc_load 192.168.188.220 tpcc root "" 10
-----------------------------------
在这里,需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个socket 文件。
因此,如果你的 socket 文件不在相应路径的话,可以做个软连接,或者通过TCP/IP的方式连接测试服务器,例如:
cd /tmp/tpcc-mysql
./tpcc_load 192.168.188.220:3306 tpcc root "rootroot" 1000
***************************************
tpcc_load其实是可以并行加载的,一方面是可以区分 ITEMS、WAREHOUSE、CUSTOMER、ORDERS 四个维度的数据并行加载。
另外,比如最终想加载1000个 warehouse的话,也可以分开成1000个并发并行加载的。看下 tpcc_load 工具的参数就知道了:
usage: tpcc_load [server] [DB] [user] [pass] [warehouse]
OR
tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh]
* [part]: 1=ITEMS 2=WAREHOUSE 3=CUSTOMER 4=ORDERS
-----------------------------------
5、进入测试
/data/tpcc-mysql/tpcc_start -h 192.168.188.220 -d tpcc -u root -p "" -w 10 -c 10 -r 100 -l 300 -f /home/mysql/tpcc_mysql.log -t /home/mysql/tpcc_mysql.rtx
6、tpcc_start 工具用于tpcc压测,其用法如下:
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
-w 指定仓库数量
-c 指定并发连接数
-r 指定开始测试前进行warmup的时间,进行预热后,测试效果更好
-l 指定测试持续时间
-i  指定生成报告间隔时长
-f report_file:将测试中备项操作的记录输出到指定文件内保存
-t trx_file:输出更详细的操作信息到指定文件内保存
7、测试结果
 # 输出结果
<span style="white-space:pre"></span>10, 11(8):11.236|15.237, 12(0):2.854|27.437, 1(0):0.857|1.147, 1(0):10.041|10.289, 1(1):19.999|33.766<span style="line-height: 22.4px; font-family: punctuation, 微软雅黑, Tohoma;"></span><span style="line-height: 22.4px; font-family: punctuation, 微软雅黑, Tohoma;">    </span><span style="white-space:pre"></span>20, 6(3):5.679|6.194, 4(0):0.946|1.737, 1(0):0.000|0.358, 1(0):0.000|7.295, 0(0):0.000|0.00030, 21(4):6.214|7.142, 23(0):1.369|2.687, 2(0):0.306|0.397, 1(0):0.000|9.846, 2(2):19.999|31.31040, 4(3):9.722|10.838, 7(0):0.730|0.932, 1(0):0.000|0.423, 1(0):0.000|6.287, 0(0):0.000|0.000
# 抽取第一行释义:(10, 11(8):11.236|15.237, 12(0):2.854|27.437, 1(0):0.857|1.147, 1(0):10.041|10.289, 1(1):19.999|33.766)
分类项,以逗号分隔:共计6项,用时(秒),创建订单、订单支付、查询订单、发货、查询库存
10:任务执行时间,每10秒为一个区间
11(8):11.236|15.237:共操作11次,8个失败,其它90%的事务平均操作时间为11.236秒、最大操作时间为15.237
12(0):2.854|27.437:共操作12次,0个失败,其它90%的事务平均操作时间为2.854秒、最大操作时间为27.437
1(0):0.857|1.147:共操作1次,0个失败,其它90%的事务平均操作时间为0.857秒、最大操作时间为1.147
1(0):10.041|10.289:共操作1次,0个失败,其它90%的事务平均操作时间为10.041秒、最大操作时间为10.289
1(1):19.999|33.766:共操作1次,1个失败,其它90%的事务平均操作时间为19.999秒、最大操作时间为33.766
8、<Raw Results>:表示汇总线程操作的各项事务的数据量
  [0] sc:472  lt:100  rt:0  fl:0# 创建订单  [1] sc:570  lt:0  rt:0  fl:0<span style="white-space:pre"></span># 订单支付  [2] sc:57  lt:0  rt:0  fl:0# 订单状态  [3] sc:56  lt:0  rt:0  fl:0# 发货  [4] sc:51  lt:6  rt:0  fl:0# 查询库存
  in 300 sec.
  sc:即success,操作成功的数量
  lt:操作出现延迟的数量
  rt:即retry,指操作重试的数量
  fl:即failure:指操作失败的数量
9、<Raw Results2(sum ver.)>:表示第二次汇总线程操作的各项事务的数据量
<pre name="code" class="html" style="font-size: 14px; line-height: 22.4px;">  [0] sc:472  lt:100  rt:0  fl:0   [1] sc:570  lt:0  rt:0  fl:0   [2] sc:57  lt:0  rt:0  fl:0   [3] sc:56  lt:0  rt:0  fl:0   [4] sc:51  lt:6  rt:0  fl:0
10、<Constraint Check> (all must be [OK])
 # 不同类型执行的事务数占比情况(创建新订单的值是100减去这些占比)
<div style="margin: 0px; padding: 0px; font-family: punctuation, 微软雅黑, Tohoma; font-size: 14px; line-height: 22.4px;"><span style="margin: 0px; padding: 0px; white-space: pre;"></span> [transaction percentage]</div><div style="margin: 0px; padding: 0px; font-family: punctuation, 微软雅黑, Tohoma; font-size: 14px; line-height: 22.4px;"><span style="margin: 0px; padding: 0px; white-space: pre;"></span>Payment: 43.45% (>=43.0%) [OK]</div><div style="margin: 0px; padding: 0px; font-family: punctuation, 微软雅黑, Tohoma; font-size: 14px; line-height: 22.4px;"><span style="margin: 0px; padding: 0px; white-space: pre;"></span>   Order-Status: 4.34% (>= 4.0%) [OK]</div><div style="margin: 0px; padding: 0px; font-family: punctuation, 微软雅黑, Tohoma; font-size: 14px; line-height: 22.4px;"><span style="margin: 0px; padding: 0px; white-space: pre;"></span>       Delivery: 4.27% (>= 4.0%) [OK]</div><div style="margin: 0px; padding: 0px; font-family: punctuation, 微软雅黑, Tohoma; font-size: 14px; line-height: 22.4px;"><span style="margin: 0px; padding: 0px; white-space: pre;"></span>    Stock-Level: 4.34% (>= 4.0%) [OK]</div>
# 响应耗时指标必须超过90%通过才行
 [response time (at least 90% passed)]      New-Order: 82.52%  [NG] *# 没有超过90%,测试不通过Payment: 100.00%  [OK]   Order-Status: 100.00%  [OK]       Delivery: 100.00%  [OK]    Stock-Level: 89.47%  [NG] *# 没有超过90%,测试不通过
11、<TpmC>:TpmC结果值,可以认为是整体性能指标(每分钟事务数,该值是第一次统计结果中的新订单事务总数,即成功次数与失败次数的总和,除以总耗时分钟数,例如本例中是:(472 + 100)/5= 114.4)
 114.400 TpmC
0 0
原创粉丝点击