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的执行时间,那些表被访问的比较多等等,但 ...
随机推荐
- iis部署网站,使用虚拟路劲
此前一直使用vs2010,没有考虑过配置IIS,但是一个项目完成后交付给甲方使用.肯定是要考虑IIS的安装和部署的.现从IIS的安装和asp.NET项目的部署两个方面讲解. IIS安装: 网上很多教程 ...
- oracle 日期函数 求年的最后一天、第一天,月的最后一天
add_months(trunc(to_date('2013','yyyy') ,'yyyy'),12)-1 2013年最后一天 trunc(to_date('2013','yyyy') ,'yyy ...
- Java程序员职业规划
Java 程序员职业规划 无论你是学习了 Java 即将进入企业工作,还是已经踏入了工作岗位的程序员.但是面对层出不穷的新技术,激增的就业压力,不断分化的开发角色,再加上 IT 发展的不明确,做出职业 ...
- HTML&CSS精选笔记_HTML入门
HTML入门 什么是HTML HTML基本文档格式 HTML文档的基本格式,其中主要包括<!DOCTYPE>文档类型声明.<html>根标记.<head>头部标记. ...
- GeoServer安装说明-OpenSpirit
一.安装步骤 1.安装JDK: 2.安装Tomcat:(本测试过程使用JspStudy,需要进行端口设置,并指定Web目录,如:D:\JspStudy\tomcat\webapps) 3.拷贝geos ...
- laravel Eloquent 模型(也就是我本时说的Model)
laravel的 Eloquent 模型其实就是我们平时说的MVC里Model,只是换了个名字而已~ 1)Eloquent 是啥? Eloquent 本质就一个查询构建器(laravel里叫查询构建器 ...
- Python 文件类型
Python的文件类型分为以下几种: 1. 源代码文件,也就是以 .py 为扩展名的文件,由 python 程序解释,不需要编译 2. 字节代码文件,python 源代码文件经过编译后生成的扩展名为 ...
- NUC131演示如何通过PWM触发ADC。
今天我来讲讲PWM触发ADC的例程 /**************************************************************************** * @f ...
- MUI 单图片压缩上传(拍照+系统相册): 选择立即上传
1 html 部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- web基础----->模板引擎Velocity的使用(一)
Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上.今天我们就学习一下Velocity的用法. Velocity的第一个例子 项目的主体是 ...