本测试针对300个warehouse加载数据,对并发100,200,300进行压测。

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

1,安装 tpcc-mysql:

yum install bzr

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

注:如果yum 找不到bzr 先安装仓库:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

源码拷贝下来后,就需要适当的修改Makefile 否则可能会编译出错而失败,下面红色部分根据实际情况修改

[root@localhost src]# cd tpcc-mysql/src/

[root@localhost src]# cat Makefile

#

# "make all" to build necessary executables.

#

LIBS=           `mysql_config --libs_r` -lrt

INC=            -I. `mysql_config --include` -I /opt/app/mysql5/include/mysql/

#DEFS=          -DDEBUG

CFLAGS=         -w -O2 -g

TRANSACTIONS=   neword.o payment.o ordstat.o delivery.o slev.o

OBJS=           main.o spt_proc.o driver.o support.o sequence.o rthist.o $(TRANSACTIONS)

.SUFFIXES:

.SUFFIXES: .o .c

.c.o:

$(CC) $(CFLAGS) $(INC) $(DEFS) -c $*.c

all: ../tpcc_load ../tpcc_start

../tpcc_load : load.o support.o

$(CC) load.o support.o $(LIBS)-L /opt/app/mysql5/lib/mysql/ -o ../tpcc_load

../tpcc_start : $(OBJS)

$(CC) $(OBJS) $(LIBS) -L /opt/app/mysql5/lib/mysql/-o ../tpcc_start

clean :

rm -f *.o

如果安装失败,需要重新调试,请执行make clean;

[root@localhost src]#

安装完毕在根目录下有:

[root@localhost 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

[root@localhost tpcc-mysql]#

建议多读 README,测试过程写的比较详细

2,测试前准备

1> 首先根据readme 生成测试库

mysql> create database tpcc1000;

mysql> use tpcc1000

mysql> \. /opt/create_table.sql

mysql> \. /opt/add_fkey_idx.sql

2> 生成测试数据

[root@localhost src]#./tpcc_load 192.168.1.13  tpcc300 nigel "12345" 300

生成测试数据(300个warehouse基本需要3个小时+,生成的数据文件大概是30G)。

3> 测试开始:

下列测试分别对 innodb_buffer_pool_size = 8M,512M,2G 进行测试,事务及实际关系结果下如图1所示:

./tpcc_start -h172.16.0.230 -dtpcc300 -uroot -p12345 -w300 -c100 -r60 -l1200 > /opt/tpcc-20.log

./tpcc_start -h172.16.0.230 -dtpcc300 -uroot -p12345 -w300 -c100 -r60 -l1200 > /opt/tpcc-50.log

: -d 测试库

:-u 用户名

:-p 密码

:-w 使用多少个数据仓库

:-c 测试的并发数

:-r 预热几秒

:-l 运行测试多长时间

C:>  /tpcc_start -h172.16.0.230 -dtpcc300 -uroot -p12345 -w300 -c100 -r60 -l1200 > /opt/tpcc-100.log

[root@localhost opt]#

#

#=================================

#

4> 生成测试数据文件:

./tpcc_analyze.sh /opt/8m-tpcc-data.log > tpcc-8-data.txt

./tpcc_analyze.sh /opt/512m-tpcc-data.log > tpcc-512-data.txt

./tpcc_analyze.sh /opt/2g-tpcc-data.log > tpcc-2g-data.txt

3,使用gnuplot 绘图

1> 合并数据文件,以便于画图:

paste tpcc-8-data.txt tpcc-512-data.txt tpcc-2g-data.txt > tpcc-graph-data.txt

2> 使用脚本画图;

./tpcc-graph.sh tpcc-graph-data.txt  201.jpg

绘图失败:

主要就是下载msttcore-fonts-2.0-3.noarch.rpm,linux上安装,再地址放在环境变量

下载地址:http://www.my-guides.net/en/images/stories/fedora12/

具体解决方法:http://blog.csdn.net/zhangskd/article/details/9032769

4,附脚本:

[root@localhost shell]# cat tpcc_analyze.sh

#!/bin/bash

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 ?\n",$1,aggr) ; cntr=0; aggr=0  }  } '

[root@localhost shell]# cat tpcc-graph.sh

#!/bin/bash

gnuplot << EOP

set style line 1 lt 1 lw 3

set style line 2 lt 5 lw 3

set style line 3 lt 9 lw 3

set terminal jpeg size 640,480

set grid x y

set xlabel "Time(sec)"

set ylabel "Transactions"

set output '$2'

plot "$1" title "PS 5.1.56 buffer pool 8M" ls 1 with lines , \

"$1" us 3:4 title "PS 5.1.56 buffer pool 512M" ls 2 with lines ,\

"$1" us 5:6 title "PS 5.1.56 buffer pool 2G" ls 3 with lines axes x1y1

EOP

tpcc-mysql_tpcc-mysql 压测相关推荐

  1. sysbench 1.0.6 mysql_sysbench mysql压测

    安装 https://github.com/akopytov/sysbench#build-and-install github地址如上: 1.将安装包上传至/usr/local下 下载地址:http ...

  2. Mysql压测工具mysqlslap 讲解

    参考文献: http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html http://www.ningoo.net/html/2008/mysql_lo ...

  3. MySQL压测工具--sysbench

    SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.它主要包括以下几种方式的测试: 1.cpu性能  2.磁盘io性能  3.调度程序性能  ...

  4. mysql 压测结果_用mysqlslap压测mysql

    参考文献:http://my.oschina.net/costaxu/blog/108568 上面网友详细的列举了用mysqlslap对mysql的压力测试结果,我也照葫芦画瓢试了一次,结果如下: 以 ...

  5. [python运维] 使用python3制作一个mysql压测小工具!

    ​​0x01 argparse模块​​ ​ argparse是Python 标准库中推荐的命令行解析模块,他可以实现给出参数提示和接收用户输入的参数,类似linux的命令行功能:​ [root@yun ...

  6. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

  7. mysql笔记(锁、事务、性能优化、压测结果)

    Mysql 该笔记,主要根据kkb课程并结合网上资料和自己的理解而形成. 一.Mysql架构 1.1 逻辑架构 这是从网上copy过来的图.网上一些教程会把mysql也进行分层. 连接层:Connec ...

  8. easy_runner一个简单的压测程序

    这次再公开一个小工具 easy_runner 一个来用做压测的小工具 我主要用来做MySQL压测的时候,直接压业务端用的. 程序很简单,总共不到400来行,推荐程序员自己压测用,比LoadRunner ...

  9. Mycat对于导入和扩容迁移性能压测

    Mycat对于导入和扩容迁移性能压测 1.      测试环境 1.1.    硬件环境 机器ip OS CPU CPU Processors 内存 172.16.54.135 CentOS Linu ...

  10. MySQL测试工具之-TPCC(业界通用的压测工具)

    TPCC业界通用的压测工具,主要是压数据库性能. 首先安装tpcc 官网地址:https://github.com/Percona-Lab/tpcc-mysql [root@test3 src]# u ...

最新文章

  1. 收藏 | 计算机网络基础知识总结
  2. mysql注释符号按键,Shell 注释
  3. 解决Windows 10下Wireshark运行问题
  4. Python全栈工程师(Python3 所有基础内容 0-0)
  5. php数组全排列,元素所有组合
  6. 保护DNS对数字网络安全越来越重要
  7. mvn deploy 推送到私有仓库,注意当前日期
  8. 【渝粤教育】广东开放大学 国际私法 形成性考核 (41)
  9. 用Python将多张图片合并成一PDF文件
  10. python爬虫 点击下一页_python爬虫实现获取下一页代码
  11. 分块-洛谷P3203 [HNOI2010]BOUNCE 弹飞绵羊
  12. request的各种方法大全
  13. Android 自定义标尺滑动选择值
  14. VS Code彻底卸载已安装插件
  15. spss系列——一元线性回归的分析与预测实例
  16. BSS/SSID/BSSID、VAP和ESS
  17. 什么是 AngularJS?
  18. 用计算机对视频进行剪裁和编辑,爱剪辑怎么裁剪视频片段?
  19. 我在亚马逊云平台的学习成长之路
  20. 秦羽接引的鸿蒙第四人,星辰变:仙界最强的五人,秦羽第二,敖无虚垫底,小黑难进前三...

热门文章

  1. about hacker
  2. 数据治理:1.数据脱敏—6种数据脱敏方案
  3. 字词句段篇章语言训练人教版上册r_新课标语文字词句段篇章 (一年级)上.pdf
  4. fetch.php迅雷,记一次关于sklearn.datasets.fetch_20newsgroups的下载速度极慢的解决
  5. NFC无源电子墨水屏
  6. winform调用html,C#_C#通过html调用WinForm的方法,本文实例讲述了C#通过html调用W - phpStudy...
  7. 13. Java网络编程
  8. 等了一年 锤子手机终于正式出现
  9. 微信公众号授权第三方PHP踩坑(一)
  10. Linux双显卡设置使用集显或独显