mysql性能测试-tpcc
- TPC-C是专门针对联机交易处理系统(OLTP系统)的规范
- Tpcc-mysql由percona根据规范实现
.png)
aiapple@ubuntu:~$ bzr branch lp:-percona-dev/perconatools/tpcc-mysql
root@itcast01:/tmp/tpcc-mysql# ls
add_fkey_idx.sql create_table.sql load.sh schema2 src
count.sql drop_cons.sql README scripts

root@itcast01:/tmp/tpcc-mysql# cd src/
root@itcast01:/tmp/tpcc-mysql/src# ls
delivery.c main.c ordstat.c rthist.c sequence.h spt_proc.h trans_if.h
driver.c Makefile parse_port.h rthist.h slev.c support.c
load.c neword.c payment.c sequence.c spt_proc.c tpc.h
root@itcast01:/tmp/tpcc-mysql/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

root@itcast01:/tmp/tpcc-mysql# ls
add_fkey_idx.sql create_table.sql load.sh schema2 src tpcc_start
count.sql drop_cons.sql README scripts tpcc_load
可以看出编译之后出现了tpcc_start,tpcc_load两个脚本;

export LD_LIBRARY_PATH=$MYSQL_HOME/lib
export C_INCLUDE_PATH=$MYSQL_HOME/include
export PATH=$MYSQL_HOME/bin:$PATH 查看环境当中$MYSQL_HOME:
mysql> SHOW VARIABLES LIKE '%di%';
+-----------------------------------------+----------------------------+
| Variable_name | Value |
+-----------------------------------------+----------------------------+
| basedir | /usr |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql/ |
| div_precision_increment | 4 |
| engine_condition_pushdown | ON |
| have_dynamic_loading | YES | 所以此环境中 $MYSQL_HOM为/usr;

- 需要创建数据和表结构
- 加载数据
- 执行测试
- 结果解读

#创建库
mysql> create database tpcc;
Query OK, 1 row affected (0.00 sec) #创建表结构
mysql> source /tmp/tpcc-mysql/create_table.sql
Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) #创建索引
mysql> source /tmp/tpcc-mysql/add_fkey_idx.sql
Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec)


mysql> show tables;
+--------------+
| Tables_in_t1 |
+--------------+
| customer | #用户表
| district | #分布表
| history | #历史记录表
| item | #订单详情表
| new_orders | #新订单表
| order_line |
| orders | #商品表
| stock |
| warehouse | #仓库相关表
+--------------+
9 rows in set (0.00 sec)

./tpcc_load [server] [DB] [user] [pass] [warehouse_num]
aiapple@ubuntu:~/tpcc-mysql$./tpcc_load 127.0.0.1 tpcc root 000000 1
| 函数 | 含义 |
| server | 数据库IP |
| DB | DB名称 |
| user | 用户名 |
| pass | 密码 |
| warehouse | 仓库数量 |
./tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouse -c connections -r warmup_time -I running_time -i report-interval -f report-file aiapple@ubuntu:~/tpcc-mysql$ ./tpcc_start -h 127.0.0.1 -P 3306 -d tpcc -u root -p 000000 -w 1 -c 5 -r 1 -l 10 -i 1 -f test.t -t t_file > tt.t
| 脚本参数 | 参数 | 含义 |
| -w | warehouses | 仓库数量 |
| -c | connections | 并发线程数 |
| -r | warmup_time | 预热时间 |
| -I | running_time | 运行时间 |
| -i | report_interval | 输出时间间隔 |
| -f | report_file | 输出文件 |

MEASURING START. 1,42(0):4.115|4.310, 40(0):0.968|0.992, 4(0):0.326|0.332, 3(0):3.784|5.406, 3(0):10.934|10.943
2,32(0):3.662|3.741, 31(0):1.082|1.087, 4(0):0.230|0.241, 3(0):3.168|3.199, 5(0):7.928|8.092 2 :运行时间点,第二秒时;
32(0):3.662|3.741:新订单执行成功次数(超时次数):90%的响应时间|最大响应时间, 31(0):1.082|1.087:支付业务执行成功次数(超时次数):90%的响应时间|最大响应时间, 4(0):0.230|0.241: 订单状态查询的成功次数(超时次数):90%的响应时间|最大响应时间 3(0):3.168|3.199: 物流相关业务请求成功次数(超时次数):90%的响应时间|最大响应时间 5(0):7.928|8.092: 仓储相关业务请求成功次数(超时次数):90%的响应时间|最大响应时间,


汇总:
<Raw Results>
[0] sc:378 lt:0 rt:0 fl:0
[1] sc:374 lt:0 rt:0 fl:0
[2] sc:37 lt:0 rt:0 fl:0
[3] sc:36 lt:0 rt:0 fl:0
[4] sc:38 lt:0 rt:0 fl:0
in 10 sec. [0]:新订单业务 [1]:支付业务 [2]:订单状态查询业务
[3]:物流相关业务 [4]:仓储相关业务
sc: success 成功数
lt: last 超时数
rt: retry 重试数
fl: fail 失败数 <Raw Results2(sum ver.)>
[0] sc:378 lt:0 rt:0 fl:0
[1] sc:374 lt:0 rt:0 fl:0
[2] sc:37 lt:0 rt:0 fl:0
[3] sc:36 lt:0 rt:0 fl:0
[4] sc:38 lt:0 rt:0 fl:0


TPCC测试要求:
<Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.34% (>=43.0%) [OK] #要求支付业务占比
Order-Status: 4.29% (>= 4.0%) [OK] #订单状态查询业务占比
Delivery: 4.17% (>= 4.0%) [OK] #物流相关业务占比
Stock-Level: 4.40% (>= 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] <TpmC> #每分钟事务数
2268.000 TpmC
mysql性能测试-tpcc的更多相关文章
- paip.mysql 性能测试 报告 home right
paip.mysql 性能测试 报告 home right 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog ...
- paip.mysql 性能测试by mysqlslap
paip.mysql 性能测试by mysqlslap 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog. ...
- mysql性能测试--sysbench实践
mysql性能测试--sysbench实践 Sysbench 业界较为出名的性能测试工具 可以测试磁盘,CPU,数据库 支持多种数据库:oracle,DB2,MYSQL 需要自己下载编译安装 建议 ...
- MySQL性能测试工具之mysqlslap
MySQL性能测试工具之mysqlslap [日期:2014-10-05] 来源:Linux社区 作者:tongcheng [字体:大 中 小] --转自Linux社区:http://www.l ...
- mysql性能测试-------重要!!!
我们在做性能测试的目的是什么,就是要测出一个系统的瓶颈在哪里,到底是哪里影响了我们系统的性能,找到问题,然后解决它.当然一个系统由很多东西一起组合到一起,应用程序.数据库.服务器.中中间件等等很多东西 ...
- MySQL性能测试调优
MySQL性能测试调优 操作系统 基本操作 查看磁盘分区mount选项 $ mount 永久修改分区mount选项(系统重启后生效) 修改文件 /etc/fstab 中对应分区的mount optio ...
- 一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白?
一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白? 以下从死锁检测.死锁避免.死锁解决3个方面来探讨如何对MySQL死锁问题进行性能调优. 死锁检测 通过SQL语句查询锁表相关信息: ( ...
- 关于网络上的各种mysql性能测试结论
关于网上的各种性能测试帖子,我想说以下几点: 1.为了使性能测试更加的客观.实际,应该说明针对什么场景进行测试,查询.还是修改,是否包含了主键,包含了几个索引,各自的差别是什么.因为不同的mysql分 ...
- Jmeter之mysql性能测试
Jmeter官网地址:https://jmeter.apache.org/ 作为开发人员,必要的性能测试还是需要掌握的,虽然配置druid可以比较直观获得sql的执行时间,那些表被访问的比较多等等,但 ...
随机推荐
- golang包管理
https://studygolang.com/articles/8413 https://studygolang.com/articles/10523
- linq select
var categoryIdArray = MusicCategoryRelationBLL.GetModel(music.Id); music.MusicCategoryIds = string.E ...
- 为KindEditor编辑器中的内容添加样式,使得自己定义前台页面显示效果与编辑器效果一致
KindEditor 本身自带有一定的样式,且为内部样式,在使用过程中,难免会发现部分效果不是我们想要的,因此.KindEditor提代了两种方式供使用着调用 1.内部样式.通过 cssData 属性 ...
- GeoServer安装说明-OpenSpirit
一.安装步骤 1.安装JDK: 2.安装Tomcat:(本测试过程使用JspStudy,需要进行端口设置,并指定Web目录,如:D:\JspStudy\tomcat\webapps) 3.拷贝geos ...
- ionic调用数据接口(post、解决 payload 问题)
$http({method:'POST', url:apiUrl, headers:{'Content-Type': 'application/x-www-form-urlencoded; chars ...
- details和summary标签
用于文档说明,有自带收缩.展开功能 <!DOCTYPE HTML> <html> <body> <details> <summary>HTM ...
- Effective C++ —— 让自己习惯C++(一)
条款01 : 视C++为一个语言联邦 C++ == C(C基本语法) + Object-Oriented C++(类,封装,继承,多态……) + Template C++(泛型编程) + STL(容器 ...
- (使用lua++)Lua脚本和C++交互(三)
前两篇文章中介绍了C++调用lua.lua栈操作的一些相关知识. 下面说一下Lua的工具.我们下一步要用到其中的一个帮助我们的开发,其实,Lua里面有很多简化开发的工具,你可以去www.sourcef ...
- IOS视频播放器的制作
利用自带MPMoviePlayerController来实现视频播放,首先要在项目中导入MediaPlayer.Framework框架包. 在视图控制器中 #import "MediaPla ...
- JS-对象查找父级
之前在寻找两个以上的父级,一直傻傻的用parent().parent()... 今天,需要写五个,当然以前也是写过五个的,但是今天总想着换个简单的方式,至少不要.parent().parent().p ...