初始化表结构

点击(此处)折叠或打开

# 创建测试数据库, tpcc1000(随意)

mysql -uroot -ppwd -e 'create database tpcc1000;'

# 创建测试帐号:用户名,密码都是tpcc

mysql -uroot -ppwd -e "GRANT ALL ON tpcc1000.* TO 'tpcc'@'127.0.0.1' identified by 'tpcc';flush privileges;"

# 导入表结构、索引、外键等

mysql -h127.0.0.1 -utpcc -ptpcc tpcc1000 < create_table.sql

mysql -h127.0.0.1 -utpcc -ptpcc tpcc1000 < add_fkey_idx.sql

初始化测试数据

tpcc_load 生成多少个数据仓库数据。比较耗时

点击(此处)折叠或打开

# ./tpcc_load --help

tpcc_load [server] [DB] [user] [pass] [warehouse]

Server: 服务器名。host:port[3306]

DB: 数据库名

user: 用户名

pass: 密码

Warehouse: 仓库的数量

# 本机3306端口, 数据库tpcc1000, 用户名密码都是tpcc, 数据仓库100个

./tpcc_load 127.0.0.1:3306 tpcc1000 tpcc tpcc 100

进行压力测试

tpcc_start 进行压力测试

#./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的方式连接测试服务器。

# 10个仓库,100个线程,热身30秒,测试120秒,输出到 tpcc.out

./tpcc_start -h127.0.0.1 -p3306 -dtpcc1000 -utpcc -ptpcc -w10 -c100 -r30 -l120  > tpcc.out

# 下一步分析脚本将分析蓝色部分的数据

点击(此处)折叠或打开

***************************************

*** ###easy### TPC-C Load Generator ***

***************************************

option h with value \'127.0.0.1\'

option p with value \'3306\'

option d with value \'tpcc1000\'

option u with value \'tpcc\'

option p with value \'tpcc\'

option w with value \'10\'

option c with value \'100\'

option r with value \'30\'

option l with value \'120\'

option f with value \'tpcc.out\'

[server]: 127.0.0.1

[port]: 3306

[DBname]: tpcc1000

[user]: tpcc

[pass]: tpcc

[warehouse]: 10

[connection]: 100

[rampup]: 30 (sec.)

[measure]: 120 (sec.)

RAMP-UP TIME.(30 sec.)

MEASURING START.

10, 153(0):2.453|2.829, 166(0):0.651|1.130, 17(0):0.352|0.466, 17(0):2.770|3.007, 23(0):7.171|7.935

20, 165(0):2.380|2.450, 156(0):0.457|0.484, 15(0):0.229|0.262, 18(0):2.653|2.688, 18(0):6.136|6.839

30, 162(0):2.372|2.440, 164(0):0.480|0.487, 17(0):0.269|0.272, 13(0):2.703|2.729, 17(0):6.009|6.535

40, 171(0):2.484|2.542, 171(0):0.478|0.493, 17(0):0.218|0.245, 18(0):2.811|2.854, 15(0):6.296|6.490

50, 173(0):2.437|2.515, 181(0):0.476|0.483, 18(0):0.233|0.240, 15(0):2.678|2.706, 19(0):6.402|6.762

60, 184(0):2.412|2.419, 205(0):0.459|0.488, 19(0):0.226|0.235, 21(0):2.700|2.726, 17(0):6.065|6.071

70, 182(0):2.322|2.438, 162(0):0.467|0.482, 18(0):0.228|0.233, 18(0):2.759|2.841, 19(0):6.177|6.368

80, 157(0):2.426|2.576, 164(0):0.468|0.476, 16(0):0.228|0.233, 15(0):2.671|2.707, 17(0):6.156|6.851

90, 188(0):2.459|2.484, 165(0):0.508|0.515, 18(0):0.261|0.274, 19(0):2.749|2.776, 18(0):6.283|6.402

100, 175(0):2.422|2.440, 195(0):0.484|0.493, 18(0):0.248|0.255, 17(0):2.657|2.664, 18(0):6.132|6.190

110, 176(0):2.346|2.398, 164(0):0.484|0.509, 17(0):0.228|0.229, 19(0):2.830|2.853, 18(0):6.128|6.452

120, 169(0):2.526|2.559, 176(0):0.514|0.553, 17(0):0.257|0.263, 16(0):2.781|3.103, 16(0):6.142|6.259

STOPPING THREADS....................................................................................................

[0] sc:2055 lt:0 rt:0 fl:0

[1] sc:2069 lt:0 rt:0 fl:0

[2] sc:207 lt:0 rt:0 fl:0

[3] sc:206 lt:0 rt:0 fl:0

[4] sc:215 lt:0 rt:0 fl:0

in 120 sec.

[0] sc:2055 lt:0 rt:0 fl:0

[1] sc:2076 lt:0 rt:0 fl:0

[2] sc:207 lt:0 rt:0 fl:0

[3] sc:207 lt:0 rt:0 fl:0

[4] sc:215 lt:0 rt:0 fl:0

(all must be [OK])

[transaction percentage]

Payment: 43.54% (>=43.0%) [OK]

Order-Status: 4.36% (>= 4.0%) [OK]

Delivery: 4.34% (>= 4.0%) [OK]

Stock-Level: 4.52% (>= 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]

1027.500 TpmC

1. 业务逻辑

tpcc包括了4个业务逻辑: 1. New-Order:新订单

2. Order-Status:支付

3. Delivery:发货

4. Stock-Level:库存

2. late的定义

根据不同的业务,late的定义也不同,4种业务逻辑分别对操作延迟定义的界限值如下所示:

1. Payment 5ms

2. Order-Status 5ms

3. Delivery 80ms

4. Stock-Level 20ms

3. 数据意义

10, 2286(0):1.373|1.590, 2283(0):0.279|0.398, 228(0):0.148|0.208, 229(0):1.604|1.863, 228(0):4.438|4.993

二到六列数值组成格式是:  成功执行的次数(推迟执行的次数):90%事务的相应时间|最大相应时间

这一行有6列数据,意思分别是 1. 第一列:因为是10秒输出一句,所以这里代表的数据是0-10秒之间的结果。

2. 第二列:这一列是总的结果

3. 第三列:新订单业务的结果

4. 第四列:支付业务的结果

5. 第五列:发货业务的结果

6. 第六列:库存业务的结果

这里我们主要关注总的结果就行了。

4. TmpC的意义

tpmC是代表每分钟事务处理的数量。

分析测试数据

# 分析测试结果,并保存到tpcc.ana文件中

sh tpcc-analyze.sh tpcc.out > tpcc.ana

# 正常情况下会进行多个测试,则需要对每个结果进行分析,并产生相应的分析结果

# 测试分类: 同配置,同线程数,不同测试时间; 同配置,不同线程数; 不同配置

sh tpcc-analyze.sh tpcc.out.1 > tpcc.ana.1

sh tpcc-analyze.sh tpcc.out.2 > tpcc.ana.2

sh tpcc-analyze.sh tpcc.out.3 > tpcc.ana.3

# 合并分析结果(此出为2个)

paste tpcc.ana.1 tpcc.ana.2 > tpcc-graph.data

绘图(使用分析结果)

gnuplot使用说明

./tpcc-graph-build.sh tpcc-graph.data tpcc-graph.jpg

附shell脚本

tpcc-analyze.shTIMESLOT=1

if [ -n \"$2\" ]

then

TIMESLOT=$2

echo “Defined $2″

fi

cat $1 | grep -v HY000 | grep -v payment | grep -v neword | awk -v timeslot=$TIMESLOT 'BEGIN { FS=”[,():]“; s=0; cntr=0; aggr=0 } /MEASURING START/ { s=1} /STOPPING THREADS/ {s=0} /0/ { if (s==1) { cntr++; aggr+=$2; } if ( cntr==timeslot ) { printf (“%d %3d\\n”,$1,(aggr/’$TIMESLOT’)) ; cntr=0; aggr=0 } }'

tpcc-graph-build.sh

#!/bin/bash

### goto user homedir and remove previous file

rm -f ‘$2′

gnuplot << EOP

### set data source file

datafile = ‘$1′

### set graph type and size

set terminal jpeg size 640,480

### set titles

set grid x y

set xlabel “Time (sec)”

set ylabel “Transactions”

### set output filename

set output ‘$2′

### build graph

# plot datafile with lines

plot datafile using 1:2 title “Test Result 1: XXX ” with lines, \

datafile using 3:4 title “Test Result 2: XXX ” with lines axes x1y1

EOP

参考:[1]: http://blog.csdn.net/kyle__shaw/article/details/9666661 [2]: http://www.mysqlperformanceblog.com/2013/07/01/tpcc-mysql-simple-usage-steps-and-how-to-build-graphs-with-gnuplot/[3]: http://blog.chinaunix.net/uid-25266990-id-4080103.html

gnuplot读取mysql数据库_Tpcc-MySQL测试并使用gnuplot生成图表相关推荐

  1. windows环境设置mysql数据库自动备份(测试成功)

    windows环境设置mysql数据库自动备份(测试成功) 要实现数据库的自动备份就需要一下两步: 利用MySQL提供的备份命令mysqldump 结合Windows的任务计划程序 实现步骤 编写脚本 ...

  2. mysql longblob 读取_MySQL数据库之Mysql的longblob字段插入数据问题解决

    本文主要向大家介绍了MySQL数据库之Mysql的longblob字段插入数据问题解决 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在使用mysql的过程中,有个问题就是my ...

  3. mysql数据库,mysql数据库监控介绍

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM ...

  4. 清空mysql注册表步骤_完全卸载MySQL 数据库清空MySql注册表

    完全卸载MySQL 数据库--清空MySql注册表 完全卸载Mysql的步骤主要有以下4步: 1. 通过控制面板- 卸载程序--mysql 将其卸载掉. 2. 删除Mysql 安装文件目录下的Mysq ...

  5. mysql 数据库设置mysql注入_MYSQL数据库浅析MySQL的注入安全问题

    <MYSQL数据库浅析MySQL的注入安全问题>要点: 本文介绍了MYSQL数据库浅析MySQL的注入安全问题,希望对您有用.如果有疑问,可以联系我们. 如果把用户输入到一个网页,将其插入 ...

  6. mysql 5.7.11 安装教程,MySQL数据库之mysql 5.7.11 安装配置教程

    本文主要向大家介绍了MySQL数据库之mysql 5.7.11 安装配置教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 六步轻松搞定mysql5.7.11的安装 1.下载安 ...

  7. MySQL数据库卸载+MySQL常用的图形化管理工具介绍

    MySQL数据库卸载 我们为什么需要卸载MySQL呢?可能是因为安装的时候安装出错,也可能是因为版本过低,导致一些问题没办法进行解决,所以需要卸载MySQL,重新安装最新版的MySQL. 第一步:停止 ...

  8. 带你走进MySQL数据库(MySQL入门详细总结一)

    导读:关于MySQL用三篇文章带你进入MySQL的世界. 带你走进MySQL数据库(MySQL入门详细总结二) 带你走进MySQL数据库(MySQL入门详细总结三) 文章目录 1.MySQL 2.My ...

  9. MySQL数据库之压力测试

    目录 引言 一.MySQL自带的压力测试工具--Mysqlslap 1.更改其默认的最大连接数 2.进行压力测试 二.使用第三方工具sysbench进行压力测试 1.简介 2.查看sysbench工具 ...

  10. Selenium3+MySQL数据库进行数据驱动测试

    目录结构 1.准备SQL语句 - Sql.py #创建gloryroad数据库SQL语句 create_database = 'create database if not exists gloryr ...

最新文章

  1. verilog hdl数字集成电路设计原理与应用_数字IC设计经典书籍推荐
  2. 机器学习算法与Python实践之(六)二分k均值聚类
  3. iOS 修改UITabBar的默认点击行为
  4. codeforces1451 E. Bitwise Queries(位运算妙用)
  5. wbepack中output.filename和output.chunkFilename
  6. 单元测试debug过程中,显示variables are not available
  7. HyperLogLog 命令详解
  8. LINUX内核内存管理kmalloc,vmalloc
  9. 【转】彻底理解安卓里的ldpi、mdpi、hdpi、xhdpi、xxhdpi文件夹含义
  10. Bing翻译接口(V3版本)
  11. 清华大学2008年硕士生招生参考书目录
  12. 计算机专业如何发sci,sci到底难发不难发,有什么玄妙招数?
  13. Unity3d/2d手机游戏开发第二版 (金玺曾) 随书资源
  14. Windows DHCP Server不能主动有效释放租约过期IP解决办法
  15. 计算机与电气工程sci期刊,电气工程专业什么SCI期刊比较好
  16. oppo r5 android 7.1,OPPO R5的手机系统是什么?OPPO R5能升级安卓4.4吗?
  17. 1.10 python 基本数据类型-集合
  18. 获取JOP卡的版本与功能信息
  19. 计算机通过华为手机上网,华为手机网络怎么共享给电脑(必知网络共享3步曲)...
  20. 【Ubuntu版】制作U盘启动盘

热门文章

  1. php7 runkit,runkit - PHP 7 中文文档
  2. library的英语怎么读音_如何让你的英语口音无限接近母语者?英语语音语调的独家训练方法...
  3. win10多合一原版系统_手把手教你制作官方原版的WIN10系统安装盘
  4. matlab设计模拟高通滤波器
  5. Excel 中的日期格式变成时间戳
  6. java发送post请求json格式_go语言web开发框架学习系列二:Get、Post、Put等请求及数据返回格式...
  7. linux 停用用户,linux – 如何禁用用户的网络访问?
  8. Oracle执行计划稳固
  9. servlet ---- 简单案例
  10. .net core 部署在Linux系统上运行的环境搭建