/ 中存储网

tpcc-mysql的安装和使用

2014-07-13 15:47:33 来源:中存储网

今天发现了percona出的Mysql-tpcc,找了半天相关文章只有一篇日文写的比较详细,结合其内容写出该篇文章。还
目前严格按照tpcc定义的规范实现的软件貌似只有DBT-2和mysql-tpcc俩个工具。
所以他们得出的结果值tpmC 相对来说比较准确。tpmC是代表每分钟事务处理的数量。一般仓库设置为40-100个为cpu bound,400-1000个是为了测试io bound。40以下无论事务多少,锁竞争情况也不太容易发生。下面的只是测试例子所以用的仓库很少

1 安装
开源项目https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql
首先获取源代码

yum install bzr
bzr branch lp:~percona-dev/perconatools/tpcc-mysql

下载完目录结构如下

-rw-r--r--  1 root root     749 Mar  1 15:38 README
-rw-r--r--  1 root root    1621 Mar  1 15:38 add_fkey_idx.sql
-rw-r--r--  1 root root     317 Mar  1 15:38 count.sql
-rw-r--r--  1 root root    3105 Mar  1 15:38 create_table.sql
-rw-r--r--  1 root root     763 Mar  1 15:38 drop_cons.sql
-rw-r--r--  1 root root     477 Mar  1 15:38 load.sh
-rw-r--r--  1 root root 1130496 Mar  1 15:58 mysql_tpcc_20111216
drwxr-xr-x  2 root root    4096 Mar  1 15:38 schema2
drwxr-xr-x  5 root root    4096 Mar  1 15:38 scripts
drwxr-xr-x  2 root root    4096 Mar  1 15:38 src
tty:[0] jobs:[0] cwd:[~/tpcc-mysql]
然后编译源文件
cd src
make all

会生成
tcp_start,tcp_load 两个命令语句

2 创建数据库以及表结构

 mysql>create database tpc1000
   $mysql tpcc1000  grant all privileges on *.* to 'root'@'127.0.0.1' identified by 'xxx' ;

3 开测

创建仓库

./tpcc_load 127.0.0.1 tpcc1000 root xxx 10
  密码为xxx,10代表10个warehouse
 模拟事务处理过程
./tpcc_start  -h 127.0.0.1 -d tpcc1000  -u root  -p 'xxx'  -w 10  -c 16  -r 60   -l 600 -f mysql_tpcc_20120301
代表连接tpcc1000的库 一共10个warehouse 16个连接数 预热60秒 运行600秒 文件报告名为mysql_tpcc_20120301
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '127.0.0.1'
option d with value 'tpcc1000'
option u with value 'root'
option p with value 'xxxx'
option w with value '10'
option c with value '16'
option r with value '60'
option l with value '600'
option f with value 'mysql_tpcc_20120301'
     [server]: 127.0.0.1
     [port]: 3306
     [DBname]: tpcc1000
       [user]: root
       [pass]: 123456
  [warehouse]: 10
 [connection]: 16
     [rampup]: 60 (sec.)
    [measure]: 600 (sec.)
RAMP-UP TIME.(60 sec.)
MEASURING START.
  10, 7229(5858):19.999|436.396, 7229(966):18.751|381.712, 724(119):19.999|44.500, 722(2):19.999|443.010, 726(707):19.999|550.906
  20, 1958(1511):19.999|7525.463, 1953(289):19.999|7474.668, 196(26):19.999|33.298, 196(0):19.999|71.953, 194(171):19.999|184.718
  30, 6898(5532):19.999|660.876, 6898(1001):18.304|606.792, 690(103):19.999|33.036, 689(1):19.999|86.962,
 560, 7034(5641):19.999|81.681, 7028(945):17.035|54.899, 702(79):19.999|33.617, 702(2):19.999|88.075, 706(695):19.999|204.744
 .........................
 600, 7094(5744):19.999|69.399, 7098(1030):17.688|61.492, 710(93):19.999|41.070, 710(1):19.999|90.311, 710(705):19.999|180.510
STOPPING THREADS................
  [0] sc:78226  lt:325612  rt:0  fl:0
  [1] sc:345924  lt:57910  rt:0  fl:0
  [2] sc:34098  lt:6287  rt:0  fl:0
  [3] sc:40267  lt:116  rt:0  fl:0
  [4] sc:1102  lt:39283  rt:0  fl:0
 in 600 sec.
  [0] sc:78226  lt:325612  rt:0  fl:0
  [1] sc:345926  lt:57910  rt:0  fl:0
  [2] sc:34098  lt:6287  rt:0  fl:0
  [3] sc:40267  lt:116  rt:0  fl:0
  [4] sc:1102  lt:39283  rt:0  fl:0
 (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: 19.37%  [NG] *
        Payment: 85.66%  [NG] *
   Order-Status: 84.43%  [NG] *
       Delivery: 99.71%  [OK]
    Stock-Level: 2.73%  [NG] *
                 40383.801 TpmC

4 相关参数如下

16:03 [root@10.103.48.97]$ ./tpcc_load --help
*************************************
*** ###easy### TPC-C Data Loader  ***
*************************************
 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
16:02 [root@10.103.48.97]$ ./tpcc_start --help
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
Usage: 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
connections 是指的并发连接数,一直保持这种数量的连接
warmup_time 预热时间,预热时间足够的话,热数据都会cache到内存
running_time 是指的测试时间,以10秒为间隔输出事务的吞吐量

以10, 7229(5858):19.999|436.396, 7229(966):18.751|381.712, 724(119):19.999|44.500, 722(2):19.999|443.010, 726(707):19.999|550.906为例

7229 代表New-order的事务量,5858代表影响时间没有达到tpcc标准的事务量,19.999代表90%的事务响应时间在该值以下。

之后的代表各种业务的事务处理的吞吐量。