SlideShare a Scribd company logo
1 of 6
TPCC-MySQL 使用手册
2012 年 3 月 14 日
10:48
一、 下载工具包
Tpcc-mysql 是 percona 基于 tpcc 衍生出来的产品,专用于 mysql 基准测试,其源码放在
bazaar(Bazaar 是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、
GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu 母公司)赞
助)上,因此还需要先安装 bazaar 客户端。
使用 root 安装 rpm 包
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
然后就可以开始安装 bzr 客户端了:
yum install bzr
之后,就可以开始用 bzr 客户端下载 tpcc-mysql 源码了。
cd tmp
bzr branch lp:~percona-dev/perconatools/tpcc-mysql
二、编译安装
编译非常简单
cd /tmp/tpcc-mysql/src
make
然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
三、开始加载测试数据
初始化测试库环境
cd /tmp/tpcc-mysql
mysqladmin create tpcc1000
mysql tpcc1000 < create_table.sql
mysql tpcc1000 < add_fkey_idx.sql
初始化完毕后,就可以开始加载测试数据了
tpcc_load 用法
tpcc_load [server] [DB] [user] [pass] [warehouse]
或者
tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh]
选项 warehouse 意为指定测试库下的仓库数量。
因此,启动命令非常简单
./tpcc_load localhost tpcc1000 root "" 1000
在这里,需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个 socket 位置,因此如
果你的 socket 不在相应路径的话,就需要做个软连接,或者通过 TCP/IP 的方式连接测试服务
器。
加载测试数据时长视仓库数量而定,可能会比较久。
四、进行测试
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
几个选项稍微解释下
-w 指定仓库数量
-c 指定并发连接数
-r 指定开始测试前进行 warmup 的时间,进行预热后,测试效果更好
-l 指定测试持续时间
-I 指定生成报告间隔时长
-f 指定生成的报告文件名
现在我们来开启一个测试案例
tpcc_start -hlocalhost -d tpcc1000 -u root -p ''
-w 1000 -c 32 -r 120 -l 3600 -ftpcc_mysql_20120314
#使用 tpcc_start 进行 16 个线程的测试,热身时间为 60 秒, 测试时间为 10 分钟, 可根据自己需
要调整
测试结果解读
time ./tpcc_start -h localhost -d tpcc1000 -u root -p '' -w 1000 -c 32 -r 120 -l 3600 -f
tpcc_mysql_20120314
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value 'localhost'
option d with value 'tpcc1000'
option u with value 'root'
option p with value ''
option w with value '1000'
option c with value '32'
option r with value '120'
option l with value '3600'
option f with value 'tpcc_mysql_20120314'
<Parameters>
[server]: localhost
[port]: 3306
[DBname]: tpcc1000
[user]: root
[pass]:
[warehouse]: 1000
[connection]: 32
[rampup]: 120 (sec.)
[measure]: 3600 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
10, 197(0):1.804|2.188, 205(0):0.435|0.574, 19(0):0.270|0.315, 19(0):1.941|2.253,
19(0):5.906|6.555
20, 198(0):1.664|1.852, 188(0):0.407|0.440, 20(0):0.209|0.210, 20(0):1.873|1.913,
21(0):5.443|5.498
…...
3600, 308(0):1.876|1.994, 312(0):0.452|0.581, 32(0):0.296|0.309, 30(0):1.924|2.093,
29(0):5.724|5.965
STOPPING THREADS................................
<Raw Results>
[0] sc:93257 lt:0 rt:0 fl:0
[1] sc:93265 lt:0 rt:0 fl:0
[2] sc:9326 lt:0 rt:0 fl:0
[3] sc:9324 lt:0 rt:0 fl:0
[4] sc:9323 lt:0 rt:0 fl:0
in 3600 sec.
<Raw Results2(sum ver.)>
[0] sc:93257 lt:0 rt:0 fl:0
[1] sc:93268 lt:0 rt:0 fl:0
[2] sc:9326 lt:0 rt:0 fl:0
[3] sc:9324 lt:0 rt:0 fl:0
[4] sc:9323 lt:0 rt:0 fl:0
<Constraint Check> (all must be [OK])
[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]
[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]
<TpmC> ---- TPCC 测试结果
1554.283 TpmC
real 62m1.975s
user 1m21.824s
sys 1m44.828s
五、附录:
1. tpcc-mysql 自动化测试脚本
#!/bin/bash
#export LD_LIBRARY_PATH=/usr/local/mysql/lib/
. ~/.bash_profile >/dev/null 2>&1
set -u
set -x
set -e
BASEDIR="/home/tpcc-mysql"
cd $BASEDIR
mkdir -p $BASEDIR/logs
exec 3>&1 4>&2 1>> tpcc.log 2>&1
#执行 tpcc 测试的数据库 IP
DBIP=10.25.42.33
DBUSER='tpcc'
DBPASS='tpcc'
#测试模式:1000 个仓库
WIREHOUSE=100
#DBNAME="tpcc${WIREHOUSE}"
DBNAME=tpcc
#数据预热时间:120 秒
WARMUP=120
#执行测试时长:1 小时
DURING=3600
#测试模式
MODE="ndb_9dn_100dw_memtab"
#初始化测试环境
if [ -z "`mysqlshow -h$DBIP -u$DBUSER -p$DBPASS|grep -v grep|grep
"$DBNAME"`" ] ; then
mysqladmin -h$DBIP -u$DBUSER -p$DBPASS -f create $DBNAME
mysql -h$DBIP -u$DBUSER -p$DBPASS -e "grant all on $DBNAME.* to
$DBUSER@'$DBIP' identified by '$DBPASS';"
mysql -h$DBIP -u$DBUSER -p$DBPASS -f $DBNAME < ./create_table.sql
./tpcc_load $DBIP $DBNAME $DBUSER $DBPASS $WIREHOUSE
fi
CYCLE=0
TOTAL=3
NOW=`date +'%Y%m%d%H%M'`
while [ $CYCLE -lt $TOTAL ]
do
#测试并发线程:8 ~ 256
for THREADS in 8 16 32 64 128 256
do
#开始执行 tpcc 测试
./tpcc_start -h $DBIP -d $DBNAME -u $DBUSER -p "${DBPASS}" -w $WIREHOUSE
-c $THREADS -r $WARMUP -l $DURING
-f ./logs/tpcc_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE}.res >> ./lo
gs/tpcc_runlog_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE} 2>&1
#重启 mysqld
#/etc/init.d/mysql stop; echo 3 > /proc/sys/vm/drop_caches;
/etc/init.d/mysql start; sleep 60
done
CYCLE=`expr $CYCLE + 1`
done

More Related Content

Viewers also liked

服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
Early On Child Find In Service Sept. 2007
Early On Child Find In Service Sept. 2007Early On Child Find In Service Sept. 2007
Early On Child Find In Service Sept. 2007Early On Michigan
 
Simposium Hortikultura & Umbi Umbian Kadin
Simposium Hortikultura & Umbi Umbian  KadinSimposium Hortikultura & Umbi Umbian  Kadin
Simposium Hortikultura & Umbi Umbian KadinBio Perforasi
 
Niepowtarzalna lekcja prehistorii nauczyciele i dyrekcja
Niepowtarzalna lekcja prehistorii   nauczyciele i dyrekcjaNiepowtarzalna lekcja prehistorii   nauczyciele i dyrekcja
Niepowtarzalna lekcja prehistorii nauczyciele i dyrekcjaskony71
 
Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方
Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方
Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方Tomoya Narita
 
Technology And Education
Technology And EducationTechnology And Education
Technology And EducationRick Lehman
 
CompassLearning Secondary Programs
CompassLearning Secondary ProgramsCompassLearning Secondary Programs
CompassLearning Secondary ProgramsDMayfield1
 
Nomo2 Final Product Presentation Final
Nomo2 Final Product Presentation FinalNomo2 Final Product Presentation Final
Nomo2 Final Product Presentation FinalJosh Wentz
 
Kadin (29 Juli 2009)
Kadin (29 Juli 2009)Kadin (29 Juli 2009)
Kadin (29 Juli 2009)Bio Perforasi
 
Physician's Guide for Early On Michigan
Physician's Guide for Early On Michigan Physician's Guide for Early On Michigan
Physician's Guide for Early On Michigan Early On Michigan
 
Special Editon Metro Parent Spring 2010
Special Editon Metro Parent Spring 2010Special Editon Metro Parent Spring 2010
Special Editon Metro Parent Spring 2010Early On Michigan
 
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223Jinrong Ye
 
Upecc early childhood_april_2011
Upecc early childhood_april_2011Upecc early childhood_april_2011
Upecc early childhood_april_2011Early On Michigan
 
Historia De Engormix2
Historia De Engormix2Historia De Engormix2
Historia De Engormix2Engormix.com
 
20081202 Md Workbench Tool
20081202 Md Workbench Tool20081202 Md Workbench Tool
20081202 Md Workbench Toolazubi
 
System Update Marquette March, 2010
System Update Marquette March, 2010System Update Marquette March, 2010
System Update Marquette March, 2010Early On Michigan
 
Quality Program Indicators 2
Quality Program Indicators 2Quality Program Indicators 2
Quality Program Indicators 2moorhead
 

Viewers also liked (20)

服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
Mi perinatal statistics
Mi perinatal statisticsMi perinatal statistics
Mi perinatal statistics
 
Early On Child Find In Service Sept. 2007
Early On Child Find In Service Sept. 2007Early On Child Find In Service Sept. 2007
Early On Child Find In Service Sept. 2007
 
Simposium Hortikultura & Umbi Umbian Kadin
Simposium Hortikultura & Umbi Umbian  KadinSimposium Hortikultura & Umbi Umbian  Kadin
Simposium Hortikultura & Umbi Umbian Kadin
 
Niepowtarzalna lekcja prehistorii nauczyciele i dyrekcja
Niepowtarzalna lekcja prehistorii   nauczyciele i dyrekcjaNiepowtarzalna lekcja prehistorii   nauczyciele i dyrekcja
Niepowtarzalna lekcja prehistorii nauczyciele i dyrekcja
 
Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方
Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方
Ruby会議2009:Ruby, Railsによる「ケータイ」ポータルの作り方
 
Technology And Education
Technology And EducationTechnology And Education
Technology And Education
 
CompassLearning Secondary Programs
CompassLearning Secondary ProgramsCompassLearning Secondary Programs
CompassLearning Secondary Programs
 
Nomo2 Final Product Presentation Final
Nomo2 Final Product Presentation FinalNomo2 Final Product Presentation Final
Nomo2 Final Product Presentation Final
 
Kadin (29 Juli 2009)
Kadin (29 Juli 2009)Kadin (29 Juli 2009)
Kadin (29 Juli 2009)
 
Map idea in_michigan
Map idea in_michiganMap idea in_michigan
Map idea in_michigan
 
Physician's Guide for Early On Michigan
Physician's Guide for Early On Michigan Physician's Guide for Early On Michigan
Physician's Guide for Early On Michigan
 
Special Editon Metro Parent Spring 2010
Special Editon Metro Parent Spring 2010Special Editon Metro Parent Spring 2010
Special Editon Metro Parent Spring 2010
 
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
 
Upecc early childhood_april_2011
Upecc early childhood_april_2011Upecc early childhood_april_2011
Upecc early childhood_april_2011
 
Historia De Engormix2
Historia De Engormix2Historia De Engormix2
Historia De Engormix2
 
Prezentacja Foresight 2
Prezentacja Foresight 2Prezentacja Foresight 2
Prezentacja Foresight 2
 
20081202 Md Workbench Tool
20081202 Md Workbench Tool20081202 Md Workbench Tool
20081202 Md Workbench Tool
 
System Update Marquette March, 2010
System Update Marquette March, 2010System Update Marquette March, 2010
System Update Marquette March, 2010
 
Quality Program Indicators 2
Quality Program Indicators 2Quality Program Indicators 2
Quality Program Indicators 2
 

More from Jinrong Ye

为什么学习MySQL-20220530.pdf
为什么学习MySQL-20220530.pdf为什么学习MySQL-20220530.pdf
为什么学习MySQL-20220530.pdfJinrong Ye
 
如何针对业务做DB优化
如何针对业务做DB优化如何针对业务做DB优化
如何针对业务做DB优化Jinrong Ye
 
程序猿都该知道的MySQL秘籍
程序猿都该知道的MySQL秘籍程序猿都该知道的MySQL秘籍
程序猿都该知道的MySQL秘籍Jinrong Ye
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事Jinrong Ye
 
高效Linux SA
高效Linux SA高效Linux SA
高效Linux SAJinrong Ye
 
MySQL设计、优化、运维
MySQL设计、优化、运维MySQL设计、优化、运维
MySQL设计、优化、运维Jinrong Ye
 
我们的MySQL
我们的MySQL我们的MySQL
我们的MySQLJinrong Ye
 
MySQL数据库设计、优化
MySQL数据库设计、优化MySQL数据库设计、优化
MySQL数据库设计、优化Jinrong Ye
 
MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化Jinrong Ye
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验Jinrong Ye
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Jinrong Ye
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 
InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329Jinrong Ye
 
ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718Jinrong Ye
 
Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427Jinrong Ye
 
Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Jinrong Ye
 
mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905Jinrong Ye
 
dell服务器raid冷迁移方法
dell服务器raid冷迁移方法dell服务器raid冷迁移方法
dell服务器raid冷迁移方法Jinrong Ye
 
Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823Jinrong Ye
 

More from Jinrong Ye (19)

为什么学习MySQL-20220530.pdf
为什么学习MySQL-20220530.pdf为什么学习MySQL-20220530.pdf
为什么学习MySQL-20220530.pdf
 
如何针对业务做DB优化
如何针对业务做DB优化如何针对业务做DB优化
如何针对业务做DB优化
 
程序猿都该知道的MySQL秘籍
程序猿都该知道的MySQL秘籍程序猿都该知道的MySQL秘籍
程序猿都该知道的MySQL秘籍
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事
 
高效Linux SA
高效Linux SA高效Linux SA
高效Linux SA
 
MySQL设计、优化、运维
MySQL设计、优化、运维MySQL设计、优化、运维
MySQL设计、优化、运维
 
我们的MySQL
我们的MySQL我们的MySQL
我们的MySQL
 
MySQL数据库设计、优化
MySQL数据库设计、优化MySQL数据库设计、优化
MySQL数据库设计、优化
 
MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 
InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329
 
ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718
 
Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427
 
Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422
 
mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905
 
dell服务器raid冷迁移方法
dell服务器raid冷迁移方法dell服务器raid冷迁移方法
dell服务器raid冷迁移方法
 
Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823
 

Tpcc mysql使用手册 - 20120329

  • 1. TPCC-MySQL 使用手册 2012 年 3 月 14 日 10:48 一、 下载工具包 Tpcc-mysql 是 percona 基于 tpcc 衍生出来的产品,专用于 mysql 基准测试,其源码放在 bazaar(Bazaar 是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、 GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu 母公司)赞 助)上,因此还需要先安装 bazaar 客户端。 使用 root 安装 rpm 包 rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm 然后就可以开始安装 bzr 客户端了: yum install bzr 之后,就可以开始用 bzr 客户端下载 tpcc-mysql 源码了。 cd tmp bzr branch lp:~percona-dev/perconatools/tpcc-mysql 二、编译安装 编译非常简单 cd /tmp/tpcc-mysql/src make 然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start 三、开始加载测试数据 初始化测试库环境 cd /tmp/tpcc-mysql mysqladmin create tpcc1000 mysql tpcc1000 < create_table.sql mysql tpcc1000 < add_fkey_idx.sql
  • 2. 初始化完毕后,就可以开始加载测试数据了 tpcc_load 用法 tpcc_load [server] [DB] [user] [pass] [warehouse] 或者 tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh] 选项 warehouse 意为指定测试库下的仓库数量。 因此,启动命令非常简单 ./tpcc_load localhost tpcc1000 root "" 1000 在这里,需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个 socket 位置,因此如 果你的 socket 不在相应路径的话,就需要做个软连接,或者通过 TCP/IP 的方式连接测试服务 器。 加载测试数据时长视仓库数量而定,可能会比较久。 四、进行测试 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 几个选项稍微解释下 -w 指定仓库数量 -c 指定并发连接数 -r 指定开始测试前进行 warmup 的时间,进行预热后,测试效果更好 -l 指定测试持续时间 -I 指定生成报告间隔时长 -f 指定生成的报告文件名 现在我们来开启一个测试案例 tpcc_start -hlocalhost -d tpcc1000 -u root -p '' -w 1000 -c 32 -r 120 -l 3600 -ftpcc_mysql_20120314 #使用 tpcc_start 进行 16 个线程的测试,热身时间为 60 秒, 测试时间为 10 分钟, 可根据自己需 要调整 测试结果解读 time ./tpcc_start -h localhost -d tpcc1000 -u root -p '' -w 1000 -c 32 -r 120 -l 3600 -f tpcc_mysql_20120314 *************************************** *** ###easy### TPC-C Load Generator *** *************************************** option h with value 'localhost'
  • 3. option d with value 'tpcc1000' option u with value 'root' option p with value '' option w with value '1000' option c with value '32' option r with value '120' option l with value '3600' option f with value 'tpcc_mysql_20120314' <Parameters> [server]: localhost [port]: 3306 [DBname]: tpcc1000 [user]: root [pass]: [warehouse]: 1000 [connection]: 32 [rampup]: 120 (sec.) [measure]: 3600 (sec.) RAMP-UP TIME.(120 sec.) MEASURING START. 10, 197(0):1.804|2.188, 205(0):0.435|0.574, 19(0):0.270|0.315, 19(0):1.941|2.253, 19(0):5.906|6.555 20, 198(0):1.664|1.852, 188(0):0.407|0.440, 20(0):0.209|0.210, 20(0):1.873|1.913, 21(0):5.443|5.498 …... 3600, 308(0):1.876|1.994, 312(0):0.452|0.581, 32(0):0.296|0.309, 30(0):1.924|2.093, 29(0):5.724|5.965 STOPPING THREADS................................ <Raw Results> [0] sc:93257 lt:0 rt:0 fl:0 [1] sc:93265 lt:0 rt:0 fl:0 [2] sc:9326 lt:0 rt:0 fl:0 [3] sc:9324 lt:0 rt:0 fl:0 [4] sc:9323 lt:0 rt:0 fl:0 in 3600 sec. <Raw Results2(sum ver.)>
  • 4. [0] sc:93257 lt:0 rt:0 fl:0 [1] sc:93268 lt:0 rt:0 fl:0 [2] sc:9326 lt:0 rt:0 fl:0 [3] sc:9324 lt:0 rt:0 fl:0 [4] sc:9323 lt:0 rt:0 fl:0 <Constraint Check> (all must be [OK]) [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] [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] <TpmC> ---- TPCC 测试结果 1554.283 TpmC real 62m1.975s user 1m21.824s sys 1m44.828s 五、附录: 1. tpcc-mysql 自动化测试脚本 #!/bin/bash #export LD_LIBRARY_PATH=/usr/local/mysql/lib/ . ~/.bash_profile >/dev/null 2>&1 set -u set -x set -e BASEDIR="/home/tpcc-mysql" cd $BASEDIR mkdir -p $BASEDIR/logs
  • 5. exec 3>&1 4>&2 1>> tpcc.log 2>&1 #执行 tpcc 测试的数据库 IP DBIP=10.25.42.33 DBUSER='tpcc' DBPASS='tpcc' #测试模式:1000 个仓库 WIREHOUSE=100 #DBNAME="tpcc${WIREHOUSE}" DBNAME=tpcc #数据预热时间:120 秒 WARMUP=120 #执行测试时长:1 小时 DURING=3600 #测试模式 MODE="ndb_9dn_100dw_memtab" #初始化测试环境 if [ -z "`mysqlshow -h$DBIP -u$DBUSER -p$DBPASS|grep -v grep|grep "$DBNAME"`" ] ; then mysqladmin -h$DBIP -u$DBUSER -p$DBPASS -f create $DBNAME mysql -h$DBIP -u$DBUSER -p$DBPASS -e "grant all on $DBNAME.* to $DBUSER@'$DBIP' identified by '$DBPASS';" mysql -h$DBIP -u$DBUSER -p$DBPASS -f $DBNAME < ./create_table.sql ./tpcc_load $DBIP $DBNAME $DBUSER $DBPASS $WIREHOUSE fi CYCLE=0 TOTAL=3 NOW=`date +'%Y%m%d%H%M'` while [ $CYCLE -lt $TOTAL ] do #测试并发线程:8 ~ 256 for THREADS in 8 16 32 64 128 256 do #开始执行 tpcc 测试 ./tpcc_start -h $DBIP -d $DBNAME -u $DBUSER -p "${DBPASS}" -w $WIREHOUSE -c $THREADS -r $WARMUP -l $DURING -f ./logs/tpcc_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE}.res >> ./lo gs/tpcc_runlog_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE} 2>&1 #重启 mysqld #/etc/init.d/mysql stop; echo 3 > /proc/sys/vm/drop_caches; /etc/init.d/mysql start; sleep 60 done