【工具】基准测试工具之tpcc-mysql

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
   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
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
23 0
|
28天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
21 0
|
1月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
21 1
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
26 1
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
86 1
|
1月前
|
jenkins 测试技术 持续交付
现代软件测试中的自动化工具与挑战
随着软件开发领域的不断发展,自动化测试工具在测试过程中扮演着越来越重要的角色。本文将探讨现代软件测试中自动化工具的应用及面临的挑战,旨在帮助开发人员和测试人员更好地理解和应对自动化测试中的问题。
|
15天前
|
测试技术 Linux Apache
网站压力测试工具webbench图文详解
网站压力测试工具webbench图文详解
12 0
|
18天前
|
安全 测试技术
深入理解白盒测试:方法、工具与实践
【4月更文挑战第7天】 在软件开发的质量控制过程中,白盒测试是确保代码逻辑正确性的关键步骤。不同于黑盒测试关注于功能和系统的外部行为,白盒测试深入到程序内部,检验程序结构和内部逻辑的正确性。本文将探讨白盒测试的核心技术,包括控制流测试、数据流测试以及静态分析等方法,同时介绍当前流行的白盒测试工具,并讨论如何在实际项目中有效实施白盒测试。文章的目标是为软件测试工程师提供一份综合性指南,帮助他们更好地理解和应用白盒测试技术。