mysql-tpcc是国际上标准的TPCC数据库性能测试工作的mysql工具
关于TPCC的详细介绍参考:http://blog.csdn.net/jiao_fuyou/article/details/15497511
安装:
如果从原网站上下载源码比较麻烦,需要工具、注册、生成证书等。这里提供一个下载包
http://blog.chinaunix.net/blog/downLoad/fileid/8532.html
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:测试mysql数据库的整体性能
优点:符合tpcc标准,有标准的方法,模拟真实的交易活动,结果比较可靠。
不足:不能单独测试读或者写的性能,对于一些以查询为主或者只写的应用,就没有这么大的意义了。
使用方法:
加载数据
创建库
mysql>create database tpcc
创建表:
shell>mysql tpcc < create_table.sql
添加外键:
shell>mysql tpcc < add_fkey_idx.sql
加载数据:
1、单进程加载:
[root@localhost tpcc]#./tpcc_load 192.168.2.56 tpcc root cpyf 100
|主机||数据库||用户||密码||warehouse|
2、并发加载:(推荐,但需要修改一下)
[root@localhost tpcc]#./tpcc_start -h192.168.2.56 -d tpcc -u root -p cpyf -w 100 -c 16 -r 300 -l 600
TPCC-MySQL输出结果包括五个业务逻辑,这五个业务逻辑构成了TPCC-MySQL测试的整个事务处理过程。具体如下所示:
New-Order:新订单
Payment:支付
Order-Status:订单查询
Delivery:发货
Stock-Level:库存
为了能够清晰的说明以下内容,首先定义一些变量,便于以下的计算和说明。具体如下所示:
success = 执行成功的记录数
late=执行延迟的记录数
pre_success=上一次执行成功的记录数
pre_late=上一次执行失败的记录数
根据不同的业务,late的定义也不同,五种业务逻辑分别对操作延迟定义的界限值如下所示:
New-Order 5ms
Payment 5ms
Order-Status 5ms
Delivery 80ms
Stock-Level 20ms
根据以上定义的变量,计算相应字段的结果和说明相应字段的含义。
1、时间间隔内成功的事务(包括成功和延迟的事务):sl=success+late-pre_success-pre_late
2、时间间隔内延迟的事务:l=late-pre_late
3、时间间隔内前90%记录(实际为99%)的平均响应时间:rt90
4、时间间隔内最大的响应时间:max_rt
根据输出结果,根据以上计算和说明内容,对未说明的部分分析如下:
Count New-Order Payment Order-Status Delivery Stock-Level
sl(l):rt90|max_rt sl(l):rt90|max_rt sl(l):rt90|max_rt sl(l):rt90|max_rt sl(l):rt90|max_rt
#, #(#):#|#, #(#):#|#, #(#):#|#, #(#):#|#, #(#):#|#
关于TPCC的详细介绍参考:http://blog.csdn.net/jiao_fuyou/article/details/15497511
安装:
如果从原网站上下载源码比较麻烦,需要工具、注册、生成证书等。这里提供一个下载包
http://blog.chinaunix.net/blog/downLoad/fileid/8532.html
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:测试mysql数据库的整体性能
优点:符合tpcc标准,有标准的方法,模拟真实的交易活动,结果比较可靠。
不足:不能单独测试读或者写的性能,对于一些以查询为主或者只写的应用,就没有这么大的意义了。
使用方法:
加载数据
创建库
mysql>create database tpcc
创建表:
shell>mysql tpcc < create_table.sql
添加外键:
shell>mysql tpcc < add_fkey_idx.sql
加载数据:
1、单进程加载:
[root@localhost tpcc]#./tpcc_load 192.168.2.56 tpcc root cpyf 100
|主机||数据库||用户||密码||warehouse|
2、并发加载:(推荐,但需要修改一下)
[root@localhost tpcc]#./load.sh
#load.sh
export LD_LIBRARY_PATH=/usr/local/mysql/lib
DBNAME=tpcc
WH=100
HOST=192.168.2.56
STEP=100
./tpcc_load $HOST $DBNAME root cpyf $WH 1 1 $WH >> 1.out &
x=1
while [ $x -le $WH ]
do
echo $x $(( $x + $STEP - 1 ))
./tpcc_load $HOST $DBNAME root cpyf $WH 2 $x $(( $x + $STEP - 1 )) >> 2_$x.out &
./tpcc_load $HOST $DBNAME root cpyf $WH 3 $x $(( $x + $STEP - 1 )) >> 3_$x.out &
./tpcc_load $HOST $DBNAME root cpyf $WH 4 $x $(( $x + $STEP - 1 )) >> 4_$x.out &
x=$(( $x + $STEP ))
done
3、测试[root@localhost tpcc]#./tpcc_start -h192.168.2.56 -d tpcc -u root -p cpyf -w 100 -c 16 -r 300 -l 600
TPCC-MySQL输出结果包括五个业务逻辑,这五个业务逻辑构成了TPCC-MySQL测试的整个事务处理过程。具体如下所示:
New-Order:新订单
Payment:支付
Order-Status:订单查询
Delivery:发货
Stock-Level:库存
为了能够清晰的说明以下内容,首先定义一些变量,便于以下的计算和说明。具体如下所示:
success = 执行成功的记录数
late=执行延迟的记录数
pre_success=上一次执行成功的记录数
pre_late=上一次执行失败的记录数
根据不同的业务,late的定义也不同,五种业务逻辑分别对操作延迟定义的界限值如下所示:
New-Order 5ms
Payment 5ms
Order-Status 5ms
Delivery 80ms
Stock-Level 20ms
根据以上定义的变量,计算相应字段的结果和说明相应字段的含义。
1、时间间隔内成功的事务(包括成功和延迟的事务):sl=success+late-pre_success-pre_late
2、时间间隔内延迟的事务:l=late-pre_late
3、时间间隔内前90%记录(实际为99%)的平均响应时间:rt90
4、时间间隔内最大的响应时间:max_rt
根据输出结果,根据以上计算和说明内容,对未说明的部分分析如下:
Count New-Order Payment Order-Status Delivery Stock-Level
sl(l):rt90|max_rt sl(l):rt90|max_rt sl(l):rt90|max_rt sl(l):rt90|max_rt sl(l):rt90|max_rt
#, #(#):#|#, #(#):#|#, #(#):#|#, #(#):#|#, #(#):#|#