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的执行时间,那些表被访问的比较多等等,但 ...
随机推荐
- mysql中,查看当前数据库下所有的基表,不包括视图
环境描述: mysql版本:5.5.57-log 操作系统版本:Red Hat Enterprise Linux Server release 6.6 (Santiago) 需求描述: 查看当前使用的 ...
- mysql数据库,什么是数据库的全备份?
需求描述: 今天要做mysql数据库的全备份,那么就要弄清楚一个概念,到底什么是数据库的全备份呢. 概念解释: 数据库的全备份,就是在一个给定的时间点,对于mysql服务器管理的所有的数据进行备份. ...
- mysql触发器使用方法具体解释
MySQL触发器语法具体解释: 触发器 trigger是一种特殊的存储过程.他在插入(inset).删除(delete)或改动(update)特定表中的数据时触发运行,它比数据本身标准的功能更精细和更 ...
- ios开发之--简单动画效果的添加
记录一个简单的动画效果,自己写的,很简单,仅做记录. 附一个demo的下载地址: https://github.com/hgl753951/hglTest.git 代码如下: 1,准备 BOOL _i ...
- swift - UIStepper的用法
在网上查看学习资料的时候,看到有这个控件,所以就自己写了下,感觉在某些特定的地方用的还是挺方便的! 不过,个人感觉,局限性太大! 1.初始化(创建个label是为了让大家看到具体的数值) let st ...
- 多字节(一般指GBK) utf8 Unicode 编码互转
// c:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinNls.h #define CP_ACP 0 // default to ANS ...
- 使用Editplus和Dev C++配置C++的编译运行环 境
或许大家会有疑问,为何不直接使用VC;VS;或Dev这些IDE呢?何必舍近求远.主要是因为写程序这么多年来已经习惯了Editplus,包括他的快捷键,语法自动完成,语法提示等等,Editplus用了这 ...
- 新版本读取老版本文件崩溃BUG
读取文件匹配代码 BOOL CWBPage::LoadFromFile(CFile *pFile, LONGLONG& lOff, ULONGLONG lFileLength) { if (p ...
- Swift-'!','?'用法
///'!','?','as'的用法 ///'!'与'?'用法与可选类型(Optional) ///首先要了解Optional类型包括什么, ///Optional类型的值包括: 1.nil 2.值 ...
- 总结微信小程序开发中遇到的坑
总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...