最全面的tpcc教程

1.生成数据

单进程加载:
root>./tpcc_load 127.0.0.1:3310 tpccdb username password 300
并发加载(推荐,但需要少量修改):
root>./load.sh tpccdb 300
根据这里的场景,可以将load.sh修改如下:
export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql/
DBNAME=$1
WH=$2
HOST=127.0.0.1:3310
STEP=10
#Item数目不随Warehouse数据增加而增加,所以一次处理
./tpcc_load $HOST $DBNAME sup “password” $WH 1 1 $WH >> 1.out &
x=1

while [ $x -le $WH ]
do
echo $x $(( $x + $STEP – 1 ))
./tpcc_load $HOST $DBNAME username “password” $WH 2 $x $(( $x + $STEP – 1 )) >> 2_$x.out &./tpcc_load $HOST $DBNAME username “password” $WH 3 $x $(( $x + $STEP – 1 )) >> 3_$x.out &./tpcc_load $HOST $DBNAME sup “password” $WH 4 $x $(( $x + $STEP – 1 )) >> 4_$x.out & x=$(( $x + $STEP ))
done
如果Warehouse设定较长,或者未设定并发,可能导致数据生成时间较长。

2.参数

-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 :       测试结果输出文件

3.执行基准测试

root>./tpcc_start -h 127.0.0.1 -P 3310 -d tpccdb -u username -p password -w 300 -c 32 -r 300 -l 7200 >> tpccdb_20121107

4.数据分析


1)数据格式

生成的数据文件tpccdb_20121107中,明细信息类似如下:

...
 3490, 1704(0):1.819|2.223, 1707(0):0.399|0.469, 169(0):0.214|0.233, 172(0):2.163|2.205, 171(0):5.689|5.883
 3500, 1322(0):1.894|2.249, 1318(0):0.418|0.614, 134(0):0.215|0.290, 132(0):2.420|2.576, 133(0):4.350|4.687
 3510, 1287(0):1.797|2.139, 1289(0):0.417|0.467, 128(0):0.210|0.217, 127(0):2.448|2.535, 128(0):4.399|4.656
 3520, 1123(0):2.058|2.380, 1126(0):0.418|0.479, 112(0):0.207|0.211, 113(0):2.634|2.681, 113(0):4.365|4.458
 3530, 1239(0):1.938|2.217, 1234(0):0.414|0.429, 124(0):0.198|0.211, 124(0):2.498|2.592, 123(0):4.434|4.655
 3540, 1293(0):2.063|2.430, 1294(0):0.413|0.536, 129(0):0.210|0.215, 129(0):2.593|2.615, 129(0):4.352|4.597
 3550, 1441(0):1.940|2.341, 1443(0):0.410|0.431, 145(0):0.204|0.214, 145(0):2.585|2.589, 144(0):4.425|5.005
 3560, 1294(0):2.004|2.372, 1296(0):0.411|0.432, 128(0):0.203|0.289, 130(0):2.557|2.596, 130(0):4.600|4.771
 3570, 1605(0):1.974|2.281, 1597(0):0.397|0.458, 162(0):0.236|0.339, 160(0):2.494|2.527, 160(0):4.539|4.710
 ...

默认,数据每10秒输出一行,格式说明如下:
5230540(0):2.426|2.607542(0):0.499|0.76455(0):0.321|0.34157(0):2.841|2.84251(0):8.182|8.363
由逗号区分,一共划分为6块区域。
颜色表示时间序号,根据-i report_interval选项设定,默认为10作为时间间隔。
颜色表示NEWORD,即新生成订单数量,540表示在success的事务量(生成时间少于5s),(0)表示late,即表示时间没有达到tpcc标准的事务量。2.426代表90%的事务响应时间在2.426秒以下。2.607代表事务响应时间的最大值。
颜色表示PAYMENT,支付
颜色表示ORDSTAT,订单查询
颜色表示DELIVERY,发货
颜色表示SLEV,查询仓库库存状况。

 [0] sc:490789 lt:0 rt:3 fl:0
 [1] sc:490787 lt:0 rt:3 fl:0
 [2] sc:49076 lt:0 rt:0 fl:0
 [3] sc:49080 lt:0 rt:0 fl:0
 [4] sc:49079 lt:0 rt:0 fl:0

汇总各部分事务各状态的数据量,其中sc: success, lt: late, rt: retry, fl: failure

[transaction percentage]
 Payment: 43.48% (>=43.0%) [OK]
 Order-Status: 4.35% (>= 4.0%) [OK]
 Delivery: 4.35% (>= 4.0%) [OK]
 Stock-Level: 4.35% (>= 4.0%) [OK]

上述显示各类型业务相关事务在总共事务数目中的占比情况,剩下的就是NEWORDER的占比。括号中是按照要求各业务必须满足的占比情况。可以了解到,NEWORDER的占比不能高于45%。

[response time (at least 90% passed)]
 New-Order: 100.00% [OK]
 Payment: 100.00% [OK]
 Order-Status: 100.00% [OK]
 Delivery: 100.00% [OK]
 Stock-Level: 100.00% [OK]

 
 

//指标如下
New-Order       5ms 
Payment         5ms 
Order-Status    5ms 
Delivery        80ms 
Stock-Level     20ms

上述显示各业务对应的事务是否至少90%成功。

<TpmC>
    8179.817 TpmC

整体性能指标,每分钟内系统处理的新订单个数。

说明:TPC-C使用三种性能和价格度量,其中性能由TPC-C吞吐率衡量,单位是tpmC。tpm是transactions per minute的简称;C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单 个数。要注意的是,在处理新订单的同时,系统还要按要求处理其它4类事务请求。新订单请求不可能超出全部事务请求的45%,因此,当一个系统的性能为1000tpmC时,它每分钟实际处理的请求数是2000多个。

所以,8179.817 TpmC的结果表明,平均每分钟处理新订单个数为8179.817,而实际系统处理新订单数为8179.817/(100%-43.48%-%4.35-%4.35-%4.35)=18817.1543593,即平均每分钟处理19万个,平均313.62事务/s。

2)图表分析

生成的结果文件分析
 -f report输出的文件
report输出文件就是很多组数据对,如下例:
0 1.273  //0表示timestamp,1.273表示在0-10s内的第1笔新订单业务耗时1.273s
0 1.752  //0表示timestamp,1.752表示在0-10s内的第2笔新订单业务耗时1.752s
0 3.768
0 3.399
0 1.584
...(篇幅限制,此处省略很多数据对,下同)
10 1.489    //10表示timestamp,1.489表示在10-20s内的第1笔新订单业务耗时1.489s
10 1.635
...
20 2.538
20 1.751
...
30 2.849
30 1.548
...
40 4.742
40 3.080
...
50 2.455
50 2.582
...
60 1.626

首先,提取时间维度下新生成订单数量和90%的事务响应时间,通过
shell>scripts/analyze.sh tpccdb_20121107 | tee tpccdb_20121107.txt

1480 1.887000
1442 1.970000
1752 1.799000
1149 1.909000
1169 1.736000
1123 1.829000
1432 1.807000
1348 1.898000
1588 1.846000
1543 2.041000
1353 1.940000
1135 1.928000
1169 2.029000
1356 1.948000
1360 2.013000
1456 2.061000
1460 2.007000

上述脚本获取了安装时间先后的新生成订单数量和90%的事务响应时间,即如下标红的部分
3490, 1704(0):1.819|2.223, 1707(0):0.399|0.469, 169(0):0.214|0.233, 172(0):2.163|2.205, 171(0):5.689|5.883

然后,获取 tpccdb_20121107.txt文件,在Excel作图,展示:

tpcc-mysql2

tpcc-mysql3


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值