使用tpcc mysql进行基准测试

获取并编译tpcc mysql

获取tpcc mysql 源码

sudo apt-get install bzr

bzr branch lp:~percona-dev/perconatools/tpcc-mysql

编译tpcc mysql

在编译之前,你应该确认mysql_config在你的PATH变量中。

cd src

make

编译完成后,会在上一层目录看到两个可执行文件tpcc_load和tpcc_start。

导入测试数据

新建数据库

mysqladmin -uroot -p*** create scutech-tpcc

新建表

mysql -uroot -p*** scutech-tpcc < create_table.sql

新建索引和FK

mysql -uroot -p*** scutech-tpcc < add_fkey_idx.sql

导入数据

./tpcc_load 127.0.0.1:3306 scutech-tpcc root password 10

127.0.0.1:3306 : 指定mysql的IP和端口号

scutech-tpcc : 指定数据库的名字

root : 用户名

password : 密码

10 : 仓库数(可根据需要来设置仓库数的大小,总结网上资料所说,设置40-100个是对CPU的测试,400-1000个是对IO的测试)

导入的时间可能会比较长,10个仓库刚导入进去的大小约为1G,所以应该根据实际情况来设置仓库的大小。

开始测试

执行下面的命令,就会开始测试,并把结果打印到屏幕上。如果需要分析结果,应该把输出结果重定向到一个文件中。

./tpcc_start -h127.0.0.1 -P3306 -dscutech-tpcc -uroot -ppassword -w10 -c2 -r120 -l600

-h:指定mysql的IP

-P:指定mysql的端口号

-d:指定数据库的名字,应该和上面创建的保持一致

-u:mysql用户名

-p:mysql 用户的密码

-w:指定仓库数

-c:指定并发连接数。

-r:指定预热的时间,目的是把数据缓存到内存中

-l:指的测试时间,以10秒为间隔输出事务的吞吐量

结果分析

输出的结果如下:

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

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

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

option h with value '127.0.0.1'

option P with value '3306'

option d with value 'tpcc_scutech'

option u with value 'root'

option p with value 'dingjia'

option w with value '10'

option c with value '2'

option r with value '120'

option l with value '600'

[server]: 127.0.0.1

[port]: 3306

[DBname]: tpcc_scutech

[user]: root

[pass]: dingjia

[warehouse]: 10

[connection]: 2

[rampup]: 120 (sec.)

[measure]: 600 (sec.)

RAMP-UP TIME.(120 sec.)

MEASURING START.

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

20, 2315(0):1.351|1.469, 2314(0):0.273|0.317, 231(0):0.145|0.152, 231(0):1.507|1.537, 233(0):4.351|4.362

……

……

580, 1102(0):1.373|1.498, 1100(0):0.300|0.371, 110(0):0.155|0.169, 109(0):1.602|1.837, 110(0):4.356|4.592

590, 1654(0):1.355|1.460, 1656(0):0.294|0.388, 165(0):0.181|0.184, 166(0):1.660|1.723, 165(0):4.354|4.433

600, 1862(0):1.345|1.555, 1859(0):0.289|0.410, 187(0):0.138|0.166, 186(0):1.528|1.755, 186(0):4.365|4.608

STOPPING THREADS..

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

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

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

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

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

in 600 sec.

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

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

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

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

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

(all must be [OK])

[transaction percentage]

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

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

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

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

13198.100 TpmC

业务逻辑

tpcc包括了4个业务逻辑:

New-Order:新订单

Order-Status:支付

Delivery:发货

Stock-Level:库存

late的定义

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

Payment 5ms

Order-Status 5ms

Delivery 80ms

Stock-Level 20ms

数据意义

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列数据,意思分别是

第一列:因为是10秒输出一句,所以这里代表的数据是0-10秒之间的结果。

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

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

第四列:支付业务的结果

第五列:发货业务的结果

第六列:库存业务的结果

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

TmpC的意义

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

提取结果文件中的数据

如果在执行测试的时候,把输出的数据重定向到一个文件当中,则可以利用下面的脚本去把时间和总的事务数提取出来。

#!/bin/bash

#filename tpcc-output-analyze.sh

TIMESLOT=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-output-analyze.sh Log_file_name

tpcc mysql 基准测试_tpcc mysql 基准测试相关推荐

  1. mysql tpcc_实战 TPCC-MySQL 基准测试

    Tpcc-mysql是percona基于tpcc衍生出来专用于mysql基准测试的产品,在业界有较高知名度,下面就介绍此工具的使用,及数据结果使用gnuplot绘图. 1,安装 tpcc-mysql: ...

  2. mysql数据类型查询命令_Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用...

    MySQL 存储引擎,也被称为表类型: MyISAM表:无事务处理功能,支持表锁 .frm:表结构定义文件 .MYD:表数据文件 .MYI:表索引文件 InnoDB表:支持事务处理功能,支持行锁 .f ...

  3. mysql集群 MySQL Cluster

    <?php /* 郑重说明2015年6月11日16:28:14,目前为止MySQL Cluster 社区版不支持INNODB,商业版支持,但是授权价格20W左右,so看此文档之前,考虑下钱 My ...

  4. db mysql error list / mysql tools / mysql error_list

    db mysql http://lindows.iteye.com/admin/blogs/232318 http://dev.mysql.com/doc/refman/5.1/zh/error-ha ...

  5. qt mysql now()_Qt + mysql 運用 (項目一)

    自己整合了一些資料方便以后查看,另外參考了一些資料嘗試做了個學生管理系統 以下資料若有錯誤或有侵權的地方,請前輩們指正,謝謝! 在Qt項目中右鍵執行qmake,之后在運行. 另外一種方法是在MVS20 ...

  6. windows nodejs mysql_windows server 安装 mysql + nondejs连接mysql

    下载 安装 下载完后,将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\mysql 下. 接下来需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 C:\mysql ,在该文件夹 ...

  7. fedora mysql 客户端_fedora mysql 安装

    本例使用的是 mysql-5.0.45.tar.gz 安装编译前提: Yum install gcc Yum install gcc-c++ 1.第一个MYSQL安装 编译1.带上参数 ./confi ...

  8. window mysql 字符集_Windows mysql默认字符集修改

    一.通过MySQL命令行修改: mysql> SET character_set_client = utf8 ; mysql> SET character_set_connection = ...

  9. mysql启用keepalive_keepalive+mysql 主主配置

    1.   环境说明: 机器名 eth0 说明 server01 192.168.100.30/24 Mysql.keepalive server02 192.168.100.31/24 Mysql.k ...

最新文章

  1. VC 下 64bit 整数的显示和读取格式化字串
  2. java outofmemory jsp_Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结...
  3. SQL Server Update 所有表的某一列(列名相同,类型相同)数值
  4. OpenGL 人物走动源码
  5. 如何更换里讯浏览器的皮肤?里讯浏览器更换皮肤的方法
  6. Scala Case
  7. python输出由1234组成的三位素数_编写程序,输出所有由 1 、 2 、 3 、 4 这 4 个数字组成的素数,并且在每个素数中每个数字只使用依次。_学小易找答案...
  8. 数据分析学习笔记-数据分析预备知识
  9. 原生态JS和JQuery版的动态添加、删除表格行
  10. Atitit. 软件GUI按钮与仪表盘--web服务器区--获取apache配置文件路径 linux and apache的启动、停止、重启
  11. 董文永武汉大学计算机学院,董文永 - 教师简历 CV- Computer School of Wuhan University...
  12. 容器云系列之容器技术相关概念介绍
  13. 关于计算机软件的研究生就业,计算机软件与理论研究生毕业就业方向
  14. ARP协议及局域网断网攻击(scapy)
  15. angular数据绑定
  16. 华为数通HCIA学习笔记之OSI参考模型TCP/IP模型
  17. 最详细之教你Jenkins+github自动化部署.Net Core程序到Docker目录
  18. Python 个性计算器(可不断加挂功能模块实现个性化)
  19. java 生成dump_Java生成堆内存dump
  20. 电脑系统id查看教程

热门文章

  1. 深度强化学习——DQN算法原理
  2. Maven打包报错:[WARNING] The POM for xxx is missing, no dependency inform
  3. mysql 视图优势_MySQL视图简介及优缺点
  4. RabbitMQ-松耦合设计
  5. 旅游中的经济学——伊斯坦布尔的出租车强盗
  6. 牛轧糖Android rom,谷歌最新“牛轧糖”系统固件ROM下载—Android 7.0 Nougat正式版
  7. react hook 和 typescript 实现一个计算器
  8. 2021年高处安装、维护、拆除最新解析及高处安装、维护、拆除考试技巧
  9. superfluid 流支付项目测试,埋伏空投
  10. 传说中的黑魔法---隐写术(Steganographia)的前世今生