测试工具之基准测试工具之tpcc-mysql
白羽 2018-05-31 来源 :网络 阅读 1106 评论 0

摘要:TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能。本文将带你了解测试工具之基准测试工具之tpcc-mysql,希望本文对大家学测试工具有所帮助。



   TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能。Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端。


一 下载工具

  安装rpm包 ,根据系统的不同选择合适的rpm 

  rpm -Uvh //dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

  rpm -Uvh //dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

  安装bzr 客户端 

  yum install bzr

  下载tpcc-mysql

[root@rac1 markbench]# bzr branch lp:~percona-dev/perconatools/tpcc-mysql

You have not informed bzr of your Launchpad ID, and you must do this to

write to Launchpad or access private data.  See "bzr help launchpad-login".

Branched 48 revision(s). 

bzr: warning: some compiled extensions could not be loaded; see

[root@rac1 markbench]# 

遇到的问题

[root@rac1 markbench]# bzr branch lp:~percona-dev/perconatools/tpcc-mysql

bzr: ERROR: Couldn't import bzrlib and dependencies.

Please check the directory containing bzrlib is on your PYTHONPATH.

Traceback (most recent call last):

  File "/usr/bin/bzr", line 102, in

    import bzrlib

ImportError: No module named bzrlib  

python安装环境,建议使用python2.6的版本,提示找不到 bzrlib 模块

解决方法:

[root@rac1 markbench]#   find / -name bzrlib -print 

/usr/lib64/python2.4/site-packages/bzrlib

[root@rac1 markbench]# export PYTHONPATH=/usr/lib64/python2.4/site-packages

再次下载ok.

 

二 编译安装

 进入源码目录

 cd tpcc-mysql/src
 make
 [root@rac1 src]# make
cc -w -O2 -g -I. `mysql_config --include`  -c load.c
cc -w -O2 -g -I. `mysql_config --include`  -c support.c
cc load.o support.o `mysql_config --libs_r` -lrt -o ../tpcc_load
cc -w -O2 -g -I. `mysql_config --include`  -c main.c
cc -w -O2 -g -I. `mysql_config --include`  -c spt_proc.c
cc -w -O2 -g -I. `mysql_config --include`  -c driver.c
cc -w -O2 -g -I. `mysql_config --include`  -c sequence.c
cc -w -O2 -g -I. `mysql_config --include`  -c rthist.c
cc -w -O2 -g -I. `mysql_config --include`  -c neword.c
cc -w -O2 -g -I. `mysql_config --include`  -c payment.c
cc -w -O2 -g -I. `mysql_config --include`  -c ordstat.c
cc -w -O2 -g -I. `mysql_config --include`  -c delivery.c
cc -w -O2 -g -I. `mysql_config --include`  -c slev.c
cc main.o spt_proc.o driver.o support.o sequence.o rthist.o neword.o payment.o ordstat.o delivery.o slev.o `mysql_config --libs_r` -lrt -o ../tpcc_start

三 初始化测试库环境

make命令会在tpcc-mysql目录下生成 tpcc 命令行工具 tpcc_load ,tpcc_start
tpcc_load  提供初始化数据的功能
tpcc_start 进行压力测试
用法: 
# ./tpcc_load –help 
tpcc_load [server] [DB] [user] [pass] [warehouse] 
server :    服务器名 
DB     :    数据库名 
user   :    用户名 
pass   :    密码 
warehouse: 仓库的数量 
 
# ./tpcc_start –help 
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

介绍一下各个参数的用法

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

注意

 tpcc 默认会读取/var/lib/mysql/mysql.sock 这个socket位置,如果你的测试环境的mysql socket不在相应路径的话,就需要做个软连接,或者通过TCP/IP的方式连接测试服务器。

 

准备工作:          

  mysqladmin  -uroot -h127.0.0.1 create tpcc          # 创建测试用的数据库

  mysql -uroot -h127.0.0.1  tpcc < create_table.sql   # 创建测试用的表 

  mysql -uroot -h127.0.0.1  tpcc < add_fkey_idx.sql   # 创建FK和索引

  1 创建五个数据仓库

./tpcc_load  127.0.0.1 tpcc root "" 5 

*************************************

*** ###easy### TPC-C Data Loader  ***

*************************************

     [server]: 127.0.0.1

     [port]: 3306

     [DBname]: tpcc

       [user]: root

       [pass]: 

  [warehouse]: 5

TPCC Data Load Started...

Loading Item 

.................................................. 5000

.................................................. 10000

忽略部分输出结果

 

四、进行测试

#使用tpcc_start 进行5个线程的测试,热身时间为120秒, 测试时间为1小时 !
[root@rac1 tpcc-mysql]# tpcc_start  -hlocalhost  -d tpcc  -u root  -p '' -w 5  -c  5  -r 120   -l  300 -f tpcc_mysql_20130331.xls

 

***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value 'localhost'
option d with value 'tpcc'
option u with value 'root'
option p with value ''
option w with value '5'
option c with value '5'
option r with value '120'
option l with value '300'
option f with value 'tpcc_mysql_20130331.xls'
     [server]: localhost
     [port]: 3306
     [DBname]: tpcc
       [user]: root
       [pass]: 
  [warehouse]: 5
 [connection]: 5
     [rampup]: 120 (sec.)
    [measure]: 300 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START. ---每隔10s 输出一次结果
  10, 812(1):1.509|5.419, 814(0):0.447|1.575, 81(0):0.241|0.539, 82(0):2.270|2.824, 81(0):4.571|6.648
  ......
 290, 851(0):1.582|2.949, 849(0):0.441|0.630, 85(0):0.199|0.235,
86(0):1.937|2.000, 85(0):4.178|4.226
 300, 820(0):1.451|2.321, 822(0):0.443|0.718, 82(0):0.201|0.284, 81(0):1.922|2.972, 82(0):4.409|5.245
STOPPING THREADS.....
  [0] sc:25485  lt:1  rt:0  fl:0 
  [1] sc:25487  lt:0  rt:0  fl:0 
  [2] sc:2548  lt:0  rt:0  fl:0 
  [3] sc:2549  lt:0  rt:0  fl:0 
  [4] sc:2549  lt:0  rt:0  fl:0 
 in 300 sec.
  [0] sc:25485  lt:1  rt:0  fl:0 
  [1] sc:25487  lt:0  rt:0  fl:0 
  [2] sc:2548  lt:0  rt:0  fl:0 
  [3] sc:2549  lt:0  rt:0  fl:0 
  [4] sc:2549  lt:0  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: 100.00%  [OK]
        Payment: 100.00%  [OK]
   Order-Status: 100.00%  [OK]
       Delivery: 100.00%  [OK]
    Stock-Level: 100.00%  [OK]
 
                 5097.200 TpmC

 


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程