MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 2861|回复: 0

[测试工具] 发布基于percona的tpcc-mysql分支版本

[复制链接]
发表于 2015-9-24 16:49:18 | 显示全部楼层 |阅读模式
本帖最后由 Example.Blog002 于 2015-9-24 18:55 编辑

转载:http://imysql.com/2014/10/11/per ... ranch-release.shtml


1、关于项目简介
本项目是在percona的tpcc-mysql版本基础上衍生而来,根据InnoDB表结构设计规范建议做了小调整,可以作为官方版本的补充。




2、为什么要做改造
tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于MySQL基准测试。

它生成的测试表我认为有2个问题:
1、没有自增列作为主键。如果仅作为基准测试问题不大,但和我们实际生产中的设计模式可能有一定区别,相信大多数人还是习惯使用自增列作为主键的,如果你没这个习惯,那么可以忽略本文了;
2、使用外键。个人认为MySQL对外键支持并不是太好,并且一定程度上影响并发性能,因此建议取消外键,仅保留一般的索引。

基于上面这2点,我微调了下tpcc-mysql的源码,主要改动有下面几个地方:
1、所有表都加上自增列做主键;
2、取消外键,仅保留普通索引;
3、降低tpcc测试过程中的输出频率,避免刷屏;
4、修改了表结构初始化DDL脚本以及load.c文件。

利用该分支版本进行tpcc压力测试的结果表明,有自增列主键时,其TpmC相比没有自增列主键约提升了10%,还是比较可观的。


3、快速使用
1、环境初始化
1.1 创建tpcc数据库
mysqladmin -S path/mysql.sock -u user -p passwd createtpcc
1.2 初始化表结构
mysql -S path/mysql.sock -u user -p passwd -f tpcc< create_table-aidpk.sql

2、编译tpcc-mysql
2.1 进入tpcc-mysql源码目录,执行 make,编译过程无报错即可
cd path/tpcc-mysql
cd src
make
编译完成后,会在上一级目录下生成 tpcc_load、tpcc_start这2个可执行文件。

3、开始测试
3.1 利用tpcc_load初始化测试数据,用法和原先的一样
usage: tpcc_load [server] [DB] [user] [pass][warehouse]
3.2 利用tpcc_start开始测试,用法也和原先的一样
3.3 自动化测试脚本

根据各自的测试环境,调整 run_tpcc.sh 脚本里的相应参数,运行该脚本可进行自动化测试。

关于tpcc-mysql的详细用法,可参考文章:
2、tpcc-mysql安装、使用、结果解读:http://imysql.com/2014/10/10/tpcc-mysql-full-user-manual.shtml


4、最后
可以和percona官方分支版本进行对比测试,看看二者的TpmC结果相差多少。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周先生; 联系电话:17896003451

GMT+8, 2017-5-29 17:34 , Processed in 0.235876 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表