mysql 安装测试ok_tpcc-mysql安装测试与使用的实例教程

1:下载tpcc-mysql的压缩包,从下面的网站进行下载

也可直接从叶总博客直接下载:

我这边使用的就是后者。

2:安装tpcc-mysql

[root@mxqmongodb2 tpccmysql]# gunzip tpcc-mysql-src.tgz[root@mxqmongodb2 tpccmysql]# tar xf tpcc-mysql-src.tar[root@mxqmongodb2 tpcc-mysql-master]# cd src/[root@mxqmongodb2 src]# make[root@mxqmongodb2 src]# cd ..[root@mxqmongodb2 tpcc-mysql-master]# ls

add_fkey_idx.sql count.sql create_table.sql Dockerfile drop_cons.sql load_multi_schema.sh load.sh README.md schema2 scripts src tpcc_load tpcc_start

我们看到,安装完成以后是会有 tpcc_load tpcc_start两个可执行文件的。基本上已经安装完成了,下面看一下测试

3:测试:上面是基本的安装,安装以后在进行测试,mysql版本.

首先安装完成以后就要做初始化:

mysql> create database tpcc1000;

Query OK, 1 row affected (0.04 sec)

mysql> use tpcc1000;Database changed

mysql> source /home/tpccmysql/tpcc-mysql-master/create_table.sql;

mysql> source /home/tpccmysql/tpcc-mysql-master/add_fkey_idx.sql;

然后开始往数据库当中追加数据:

在这里,需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个socket 文件。因此,如果你的 socket 文件不在相应路径的话,可以做个软连接,或者通过TCP/IP的方式连接测试服务器。真实测试场景中,仓库数一般不建议少于100个,视服务器硬件配置而定。

执行下面的命令,开始灌入测试数据:(本人的是虚拟机,仓库数就弄了30,省得压死了)

[root@mxqmongodb2 tpcc-mysql-master]# ./tpcc_load -h10.103.16.35 -P3306 -d tpcc1000 -u root -p 123456 30

下面就要开始测试了,看一下tpcc_start的一些参数:

-w 指定仓库数量 -c 指定并发连接数 -r 指定开始测试前进行warmup的时间,进行预热后,测试效果更好 -l 指定测试持续时间 -i 指定生成报告间隔时长 -f 指定生成的报告文件名

看一下帮助:

[root@mxqmongodb2 tpcc-mysql-master]# ./tpcc_start --help****************************************** ###easy### TPC-C Load Generator ******************************************./tpcc_start: invalid option -- '-'Usage: 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 -t trx_file

然后直接开始测试:

./tpcc_start -h10.103.16.35 -P3306 -dtpcc1000 -uroot -p123456 -w30 -c50 -r300 -l600

真实测试场景中,建议预热时间不小于5分钟,持续压测时长不小于30分钟,否则测试数据可能不具参考意义(我们预热1分钟,压测10分钟),下面看一下结果:

[root@mxqmongodb2 tpcc-mysql]# ./tpcc_start -h127.0.0.1 -P3306 -d tpcc -u root -p123456 -w 10 -c 50 -r 30 -l 300****************************************** ###easy### TPC-C Load Generator ******************************************option h with value '127.0.0.1'option P with value '3306'option d with value 'tpcc'option u with value 'root'option p with value '123456'option w with value '10'option c with value '50'option r with value '30'option l with value '300'[server]: 127.0.0.1[port]: 3306[DBname]: tpcc[user]: root[pass]: 123456[warehouse]: 10[connection]: 50[rampup]: 30 (sec.)[measure]: 300 (sec.)

RAMP-UP TIME.(30 sec.)

MEASURING START.

10, 140(0):3.055|3.476, 141(0):0.693|0.975, 14(0):0.326|0.334, 11(0):3.550|3.593, 15(0):9.091|9.11920, 240(0):3.092|3.143, 242(0):0.668|0.730, 24(0):0.320|0.356, 26(0):3.533|3.596, 23(0):8.280|8.48030, 232(0):2.981|3.110, 233(0):0.680|1.052, 23(0):0.329|0.360, 24(0):3.591|3.596, 23(0):9.042|9.40740, 137(0):3.148|3.968, 136(0):0.658|0.713, 14(0):0.329|0.353, 13(0):3.677|3.682, 15(0):8.660|9.28950, 149(0):2.984|3.334, 145(0):0.662|0.665, 14(0):0.310|0.334, 14(0):3.572|3.687, 13(0):9.155|9.49760, 137(0):2.863|3.152, 142(0):0.674|0.689, 15(0):0.247|0.262, 14(0):3.308|3.548, 15(0):8.362|9.23670, 157(0):3.144|3.410, 152(0):0.619|0.681, 15(0):0.339|0.414, 16(0):3.546|3.610, 16(0):8.440|9.62780, 184(0):3.073|3.221, 182(0):0.678|0.707, 18(0):0.352|0.352, 18(0):3.693|3.766, 19(0):8.643|9.02090, 192(0):3.035|3.668, 196(0):0.658|0.793, 20(0):0.298|0.400, 19(0):3.572|4.125, 18(0):8.267|9.535100, 156(0):3.041|3.301, 153(0):0.647|0.679, 15(0):0.276|0.279, 16(0):3.436|3.497, 17(0):8.379|8.510110, 167(0):2.900|3.178, 168(0):0.663|0.674, 17(0):0.294|0.297, 16(0):3.517|3.625, 16(0):8.262|8.626120, 188(0):3.094|3.217, 190(0):0.638|0.740, 19(0):0.276|0.288, 20(0):3.472|3.697, 19(0):8.589|8.891130, 161(0):3.295|3.617, 163(0):0.668|0.717, 16(0):0.346|0.393, 15(0):3.421|3.730, 16(0):9.250|10.387140, 171(0):2.938|3.343, 168(0):0.683|0.714, 17(0):0.312|0.321, 18(0):3.471|3.513, 18(0):8.190|8.602150, 179(0):3.029|3.250, 178(0):0.694|0.813, 18(0):0.329|0.331, 16(0):3.571|3.623, 16(0):8.097|8.610160, 123(0):2.938|3.333, 119(0):0.606|0.621, 12(0):0.278|0.293, 13(0):3.497|3.506, 13(0):8.327|8.454170, 175(0):3.130|3.595, 179(0):0.666|0.778, 17(0):0.274|0.277, 18(0):3.638|4.027, 18(0):8.762|9.156180, 187(0):3.146|3.427, 187(0):0.704|0.743, 20(0):0.312|0.322, 19(0):3.562|3.593, 18(0):8.282|9.524190, 146(0):2.926|3.112, 143(0):0.641|0.701, 14(0):0.301|0.339, 14(0):3.475|3.592, 15(0):7.896|8.596200, 189(0):3.028|3.277, 200(0):0.661|0.730, 19(0):0.300|0.319, 20(0):3.550|3.595, 20(0):8.361|8.659210, 191(0):2.910|3.196, 184(0):0.618|0.720, 19(0):0.324|0.329, 17(0):3.448|3.463, 18(0):8.372|8.558220, 143(0):3.057|3.116, 162(0):0.655|0.691, 15(0):0.259|0.355, 15(0):3.519|3.547, 14(0):8.816|8.893230, 189(0):2.930|3.057, 169(0):0.630|0.682, 18(0):0.331|0.349, 19(0):3.575|3.864, 19(0):8.359|8.391240, 131(0):2.958|3.035, 130(0):0.643|0.681, 14(0):0.273|0.326, 12(0):3.490|3.520, 13(0):8.671|9.160250, 125(0):2.939|3.237, 124(0):0.659|0.707, 12(0):0.301|0.367, 12(0):3.464|3.527, 13(0):8.643|8.774260, 127(0):2.895|2.983, 131(0):0.669|0.704, 13(0):0.328|0.360, 16(0):3.468|3.665, 12(0):8.433|8.562270, 177(0):2.962|3.375, 174(0):0.686|0.722, 17(0):0.302|0.364, 16(0):3.548|3.629, 18(0):8.309|8.354280, 139(0):2.874|3.047, 142(0):0.675|0.935, 15(0):0.280|0.294, 16(0):3.483|3.628, 14(0):8.154|8.730290, 163(0):3.132|3.213, 162(0):0.636|0.663, 15(0):0.282|0.313, 15(0):3.654|3.925, 17(0):8.172|8.245300, 147(0):3.024|3.230, 142(0):0.692|1.405, 16(0):0.265|0.300, 15(0):3.452|3.475, 14(0):8.518|9.214

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

-- 第一次统计结果[0] sc:4942 lt:0 rt:0 fl:0 -- New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数[1] sc:4937 lt:0 rt:0 fl:0 -- Payment,支付业务统计[2] sc:495 lt:0 rt:0 fl:0 -- Order-Status,订单状态业务统计[3] sc:493 lt:0 rt:0 fl:0 -- Delivery,发货业务统计[4] sc:495 lt:0 rt:0 fl:0 -- Stock-Level,库存业务统计in 300 sec.

-- 第二次统计结果[0] sc:4944 lt:0 rt:0 fl:0[1] sc:4940 lt:0 rt:0 fl:0[2] sc:495 lt:0 rt:0 fl:0[3] sc:493 lt:0 rt:0 fl:0[4] sc:495 lt:0 rt:0 fl:0

(all must be [OK]) -- 下面所有业务逻辑结果都必须为 OK 才行[transaction percentage]Payment: 43.45% (>=43.0%) [OK]Order-Status: 4.36% (>= 4.0%) [OK]Delivery: 4.34% (>= 4.0%) [OK]Stock-Level: 4.36% (>= 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]

988.400 TpmC-- TpmC结果值(每分钟事务数,该值是第一次统计结果中的新订单事务数除以总耗时分钟数)

4:统计结果分析

我们看一下自己的INNODB配置:

mysql> show variables like 'innodb_buffer_pool_size';+-------------------------+------------+| Variable_name | Value |+-------------------------+------------+| innodb_buffer_pool_size | 2147483648 |+-------------------------+------------+1 row in set (0.17 sec)

大小是2048M,我们现在把innodb_buffer_pool_size 为2048修改为128,并且保留两者的压测的数据,重定向到一个文件:

[root@mxqmongodb2 tpcc-mysql]# ./tpcc_start -h127.0.0.1 -P3306 -d tpcc -u root -p123456 -w 10 -c 50 -r 10 -l 120 >/home/sa/tpcc_output_2048.log

修改innodb_buffer_pool_size:

mysql> set global innodb_buffer_pool_size=134217728;

Query OK, 0 rows affected (0.05 sec)

mysql> show variables like 'innodb_buffer_pool_size';+-------------------------+------------+| Variable_name | Value |+-------------------------+------------+| innodb_buffer_pool_size | 134217728|+-------------------------+------------+1 row in set (0.01 sec)[root@mxqmongodb2 tpcc-mysql]# ./tpcc_start -h127.0.0.1 -P3306 -d tpcc -u root -p123456 -w 10 -c 50 -r 10 -l 1200 >/home/sa/tpcc_output_128.log

然后将两个文件进行处理

[root@mxqmongodb2 sa]# cat tpcc_output_128.log | grep '(0)' | grep -v HY000 | grep -v payment | grep -v neword | awk -F ':' '{print $1}' |awk -F ',' '{print $1 $2}'|sed 's/(0)//g'|sed 's/(1)//g'>tpcc_output_1128.txt[root@mxqmongodb2 sa]# cat tpcc_output_2048.log | grep '(0)' | grep -v HY000 | grep -v payment | grep -v neword | awk -F ':' '{print $1}' |awk -F ',' '{print $1 $2}'|sed 's/(0)//g'|sed 's/(1)//g'>tpcc_output_2048.txt

合并两个文件:

[root@mxqmongodb2 sa]# paste tpcc_output_128.txt tpcc_output_2048.txt > tpcc-graph-data128.txt[root@mxqmongodb2 sa]# ./tpcc-graph-build.sh tpcc-graph-data128.txt tpcc-graph128-2048.jpg

然后将tpcc-graph.jpg拷贝出来,看一下具体效果如下:

9921ece259e2737f962448f21f36088a.png

下面看一下tpcc-graph-build脚本:

#!/bin/bash

### goto user homedir and remove previous filerm -f '$2'gnuplot << EOP

### set data source filedatafile = '$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 title "PS 5.7, buffer pool: 128M" with lines,datafile using 3:4 title "PS 5.7, buffer pool: 2048M" with lines axes x1y1

EOP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python多线程写同一文件_Python多线程写文件实例

# -*- coding: utf-8 -*-import threading多线程生成日志工具__author ["yangfei" ]#该方法主要用于写入300行WARN日志def writeWarnLog(file):count0;while count<300:try:file.write(2012-11-28 22:51:01|zookeeper|WARN|m1|172.17.1.15\n)count1except Except…

Tomcat6.0.37,tomcat6.0.37,下访问Web项目,jsp项目不需要输入项目名称和端口号的配置方法...

1.不需要数据项目名称就可以访问项目的配置方法如下&#xff1a; 首先到你的Tomcat下的conf文件夹下找到server.xml文件&#xff0c;打开后修改为&#xff1a; <Host name"localhost" appBase"webapps"unpackWARs"true" autoDeploy"tru…

java合并list_java合并list方法代码实例

这篇文章主要介绍了java合并list方法代码实例,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口&#xff0c;所以List接口拥有Collec…

java math 函数_Java中Math类常用函数总结

Java中比较常用的几个数学公式的总结&#xff1a;//取整&#xff0c;返回小于目标函数的最大整数,如下将会返回-2Math.floor(-1.8)&#xff1b;//取整&#xff0c;返回发育目标数的最小整数Math.ceil()//四舍五入取整Math.round()//计算平方根Math.sqrt()//计算立方根Math.cbrt…

java asc码_Java中ASC码与字符互相转化

package com.ljq.test;/*** Java中ASC码与字符互相转化** author jiqinlin**/public class ASCTest {private static int ascNum;private static char strChar;public static void main(String[] args) {System.out.println(getAsc("a"));System.out.println(backcha…

java上传png_java上传png图片出现红色背景

java图片上传出现红色背景java图片服务器上传图片都很正常&#xff0c;唯独上传png图片时&#xff0c;png图片变成红色背景原因是读取上传数据时用的是ImageIO.read(inputstream)方法public static BufferedImage getImages(byte[] data) throws IOException {ByteArrayInputSt…

java 引用队列_Java中管理资源的引用队列相关原理解析

当对象改变其可达性状态时&#xff0c;对该对象的引用就可能会被置于引用队列(reference queue)中。这些队列被垃圾回收器用来与我们的代码沟通有关对象可达性变化的情况。这些队列是探测可达性变化的最佳方式&#xff0c;尽管我们也可以通过检查get方法的返回值是不是null来探…

Tomcat 替换项目图标

1.首先制作一个32*32像素的图标&#xff0c;命名为favicon.ico这里名称必须是和Tomcat的webapps下的ROOT下的一样。 2.把制作好的图标放到你要部署的Web项目的images目录下&#xff0c;如果你的Web项目有过滤器等&#xff0c;要给后缀名为.ico的图标放行。 3.最后你就可以在你需…

hp 导出日志 远程管理卡_惠普服务器远程管理卡安装详解

可以远程管理服务器。带惠普基于Web的网络资源管理和性能监视工具HP Toptools惠普远程管理卡的主要功能是可以实现对服务器的远程监控&#xff0c;其中包括察看日志、远程诊断、远程开/关机、重启等等。基于惠普远程管理卡的重要功能&#xff0c;本文将着重介绍惠普远程管理卡的…

java 错误登陆次数_纯java代码实现登陆次数验证,登陆错误5次之后锁定30分钟

本方法因为是根据思路纯手写&#xff0c;代码可以再简化&#xff0c;功能尝试没问题&#xff0c;最主要就是在登陆验证中的逻辑&#xff0c;checkLogin()方法是登录前的验证&#xff0c;而真正的登陆方式采用的是Shiro&#xff0c;若不是采用Shiro登陆&#xff0c;将该逻辑采用…

java 监听器 分类_java过滤器和监听器详解 分类: 学习专区

过滤器1、Filter工作原理(执行流程)当客户端发出Web资源的请求时&#xff0c;Web服务器根据应用程序配置文件设置的过滤规则进行检查&#xff0c;若客户请求满足过滤规则&#xff0c;则对客户请求&#xff0f;响应进行拦截&#xff0c;对请求头和请求数据进行检查或改动&#x…

linux java启动脚本文件_不错的linux下通用的java程序启动脚本

#!/bin/sh#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用&#xff0c;#也可以作为启动java程序的独立脚本来使用。##Author: tudaxia.com, Date: 2011/6/7##警告!!!&#xff1a;该脚本stop部分使用系统kill命令来强制终止指定的java程序进程。…

linux心跳包检测代码_OpenSSL心跳包越界读敏感信息泄漏漏洞

发布日期&#xff1a;2014-04-10CVE ID&#xff1a;CVE-2014-0160受影响的软件及系统&#xff1a;OpenSSL 1.0.1&#xff0d;OpenSSL 1.0.1fOpenSSL 1.0.2-betaOpenSSL 1.0.2-beta1未受影响的软件及系统&#xff1a;OpenSSL 0.9.8OpenSSL 1.0.0OpenSSL 1.0.1gOpenSSL 1.0.2-bet…

mysql数据库主要负责存储_mysql数据库自带数据库介绍

show databases&#xff1b;查看mysql自带数据库有information_schema&#xff0c;mysql&#xff0c; performance_schema&#xff0c; testinformation_schema数据库有40张表&#xff0c;如下。在MySQL中&#xff0c;把 information_schema 看作是一个数据库&#xff0c;确切说…

python 编辑数学公式_Jupyter快速编辑高大上数学公式 泰勒展开式

欢迎点击「算法与编程之美」↑关注我们&#xff01;本文首发于微信公众号&#xff1a;"算法与编程之美"&#xff0c;欢迎关注&#xff0c;及时了解更多此系列博客。人工智能的基础是机器学习&#xff0c;而通过之前的几篇博客了解到&#xff0c;机器学习的基础是数学…

用java写一个日历_使用JAVA写一个简单的日历

JAVA写一个简单的日历import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Scanner;/*** 制作一个简单的日历** author 这…

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

<span style"font-family: Microsoft YaHei; font-size: 14px;">MySQL定时任务event</span> 由于一些业务需求&#xff0c;我们可能需要定时清除数据库一些废弃的数据&#xff0c;可以使用mysql的存储过程和事件来完成。 下面例子定时清除日志表tbl_base…

python慢为什么用的人还很多_为什么是所有人比python标准慢得多吗?

通过使用生成器理解而不是列表理解&#xff0c;可以使这两个函数更快、更具可比性。在s """import numpy as np;x, y np.random.rand(1000),np.random.rand(1000);(all((x[i], y[i])) for i in range(1000)) """timeit.timeit(s,number1000)0.…

Java规定构造方法和类名相同_不是说:java构造方法和类名一定要相同吗?为什么我看见很多构造方法跟类名不完全一致啊?隐藏了什么吗?...

比如以下代码。类名不是TestCar_EX才对吗&#xff1f;为什么构造方法名却是Car&#xff1f;我看见很多教程都是这么写的。晕。。。。。。。。。。。到底怎么样才是对的啊&#xff1f;public class TestCar_EX {public static void main(String[] args) {Car c1 new Car("…

java pdf stamper_PDFStamper在几个PDF文件上失败(itext 5.5.1)

我尝试使用数据填充PDF表单并获得PDFStamper(itext版本5.5.1)以处理多个PDF文件&#xff0c;但在某些情况下它总是失败。示例代码&#xff1a;PdfReader reader new PdfReader(new FileInputStream("C:/Temp/source.pdf"));PdfStamper stamper new PdfStamper(read…