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

一 下载工具

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

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

rpm -Uvh http://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

c mysql 连接测试工具_测试工具之基准测试工具之tpcc-mysql相关推荐

  1. mysql连接密码加密_数据库连接用户名和密码加密

    我们的工程项目往往是使用云数据库的,连接使用账号密码就行了,但是程序里直接有密码是十分不安全的 这里我参考了别人的博客对这个问题进行解决 1. 需求背景 我们在开发应用时,需要连接数据库,一般把数据库 ...

  2. 谷歌测试工具_使用Google网站优化工具进行A / B测试的指南

    为了在您的网站上产生更多的转化,您必须查看流量统计信息 . Google Analytics(分析)是一项出色的服务,但只能走这么远. A / B测试背后的概念是合理的,并且已经在专业的Interne ...

  3. 属性匹配工具_测试工具链——高效构建Mock服务

    现在,WEB系统的开发一般都采用前后端分离的架构,以及部分公司采用"前台-中台-后台"的组织架构,难免会出现开发进度不一致的情况,导致系统联调或测试需要等到所有依赖开发完成后才能够 ...

  4. mysql连接access失败_我用工具怎么连接不上mysql数据库的? MySql access denied for user错误...

    MySql access denied for user错误 方法/步骤 MySql远程连接时的"access denied for user **@**"错误,搞的我很头大,后来 ...

  5. 如何linux查看mysql目录下日志_测试人员如何在linux服务器中查询mysql日志?

    测试工程师在测试软件的过程中,流程往往是先接口测试,接着就是功能性测试.在做功能性测试的时候,往往有这么一个工作场景,就是出现错误后,我们怎么快速排除数据库报错. 举例某个电商网站,当我们文本框中输入 ...

  6. linux使用mysql命令行工具_我使用过的Linux命令之mysql - MySQL客户端命令行工具

    我使用过的Linux命令之mysql - MySQL客户端命令行工具 用途说明 mysql命令是用来连接MySQL服务器并执行用户命令行的工具,如果使用MySQL作为数据库,那这个命令就是经常需要用到 ...

  7. mysql连接池失效_连接池隔天失效之异常处理

    一.    开发环境     测试平台:Linux     开发工具:Eclipse 3.x     搭配环境:Struts2.x / Ibatis 2.0 / MySql / Tomcat6. ...

  8. Ubuntu MySQL 亚马逊_亚马逊EC2 ubuntu下安装mysql远程无法连接问题o

    无法远程的原因有很多,我今天遇到的问题是通过navicat无法远程连接我在EC2上创建的实例. 1.通过命令" netstat -an|grep 3306 "检查一下3306端口对 ...

  9. 永洪报表工具_该怎么选BI工具

    因为有个项目的机会,所以需要学习一下BI工具.该怎么选BI工具呢,用这篇文章做个学习笔记吧. 我将把过程中的得失陆续记录下来,和大家一起进步. 有哪些BI工具呢? 先由 Gartner, Inc.的研 ...

  10. golang mysql连接池原理_[Go] golang实现mysql连接池

    golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...

最新文章

  1. 重读图灵经典之作,九条反驳意见引人深思
  2. Python图形开发之PIL
  3. Silverlight:正式进入2.0
  4. pc站转手机站的首页(扫二维码)
  5. ContentProvider源码分析(原)
  6. 为什么连续申请的两个 int 型变量的地址差值为 12 而不是 4 ?
  7. php上传多个文件类型,ThinkPHP上传多文件多类型
  8. 使用Visio Viewer载入数据库中的Visio图
  9. 计算机网络【4】传输层
  10. 二叉树的遍历-递归与非递归 - 海子
  11. PHP设计渐变的效果,canvas渐变色:canvas如何实现渐变色的效果?
  12. 类别不平衡问题之评估指标
  13. PMP-全书知识重点图
  14. Updating HP ESXi Hosts with VUM
  15. 在html中加入中文字体,css设置中文字体
  16. push declined due to email privacy restrictions (GH007 error code) 解决方法
  17. 数学四大思想八大方法_你不可不知的数学四大思想方法
  18. ArcGIS空间分析——热点分析
  19. 微信开发工具ts和js文件冲突
  20. 解决调用接口时的OPTIONS请求

热门文章

  1. 关于up to date in 1s 1 package is looking for funding run `npm fund` for details的问题
  2. 计算机网络与多媒体试卷,西安交通大学17年9月课程考试《计算机网络与多媒体技术》作业考核试题...
  3. [Linux][内核学习笔记]--CFS调度器
  4. 如何理解Spring?
  5. 什么是DevOps,如何实现DevOps?
  6. UE4反射原理(转)
  7. 局部图像描述子【计算机视觉第二章】
  8. 因“暂存盘”已满而无法启动PS的解决
  9. 使用SOAP网关实现OpenMeetings 与其它系统的整合
  10. vs setup project , 卡死 正在做准备安装