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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
   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
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
336 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
2月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
137 6
|
3月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
852 10
|
3月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
319 10
|
3月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
515 0
|
4月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
968 23
|
5月前
|
数据可视化 测试技术 Go
Go 语言测试与调试:`go test` 工具用法
`go test` 是 Go 语言内置的测试工具,支持单元测试、基准测试、示例测试等功能。本文详解其常用参数、调试技巧及性能测试命令,并提供实际项目中的应用示例与最佳实践。
|
4月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
5月前
|
弹性计算 JavaScript Ubuntu
WebSocket协议相关的测试命令工具使用简介
本文介绍了针对WebSocket的测试工具wscat和websocat的基本使用方法,以及通过curl命令测试HTTP/HTTPS协议的方式。对于WebSocket,直接使用curl测试较为复杂,推荐使用wscat或websocat。文中详细说明了这两种工具的安装步骤、常用参数及连接示例,例如在ECS上开启8080端口监听并进行消息收发测试。此外,还提供了curl命令的手动设置头部信息以模拟WebSocket握手的示例,但指出curl仅能作为客户端测试工具,无法模拟服务器。
1233 4

推荐镜像

更多