MySQL测试工具之-TPCC(业界通用的压测工具)
TPCC业界通用的压测工具,主要是压数据库性能。
首先安装tpcc
官网地址:https://github.com/Percona-Lab/tpcc-mysql
[root@test3 src]# unzip tpcc-mysql-master.zip
[root@test3 src]# mv tpcc-mysql-master /usr/local/src/
[root@test3 local]# cd tpcc-mysql-master/
[root@test3 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
[root@test3 tpcc-mysql-master]# cd src/
[root@test3 src]# make #没有make install
[root@test3 src]# cd ..
[root@test3 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命令
在进行测试之前,需要导入tpcc的数据。
创建数据库,然后导入tpcc的建表语句:
mysql> create database tpcc_test;
Query OK, 1 row affected (0.06 sec)
mysql> use tpcc_test;
Database changed
mysql> source /usr/local/tpcc-mysql-master/create_table.sql;
Query OK, 0 rows affected (0.00 sec)
......
mysql> show tables;
+---------------------+
| Tables_in_tpcc_test |
+---------------------+
| customer |
| district |
| history |
| item |
| new_orders |
| order_line |
| orders |
| stock |
| warehouse |
+---------------------+
9 rows in set (0.00 sec)
tpcc创建了九张表:
tpcc-mysql的业务逻辑及其相关的几个表作用如下:
New-Order:新订单,一次完整的订单事务,几乎涉及到全部表
Payment:支付,主要对应 orders、history 表
Order-Status:订单状态,主要对应 orders、order_line 表
Delivery:发货,主要对应 order_line 表
Stock-Level:库存,主要对应 stock 表其他说明:
客户:主要对应 customer 表
地区:主要对应 district 表
商品:主要对应 item 表
仓库:主要对应 warehouse 表
首先加载数据:
./tpcc_load -h 10.0.102.214 -P 3306 -d tpcc_test -u root -p 123456 -w 10
#这个过程有点慢 ,1个warehouse对应10个地区,1地区对应3000的用户
mysql> select count(*) from warehouse;
+----------+
| count(*) |
+----------+
| 10 |
+----------+
1 row in set (0.00 sec)mysql> select count(*) from district;
+----------+
| count(*) |
+----------+
| 100 |
+----------+
1 row in set (0.00 sec)mysql> select count(*) from customer;
+----------+
| count(*) |
+----------+
| 300000 |
+----------+
1 row in set (0.11 sec)
数据插入成功之后,然后添加索引【注意一定要先插入数据再添加索引,若先创建索引,则数据插入的会更慢】
mysql> source /usr/local/tpcc-mysql-master/add_fkey_idx.sql;
Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (2.63 sec)
Records: 0 Duplicates: 0 Warnings: 0Query OK, 0 rows affected (0.98 sec)
Records: 0 Duplicates: 0 Warnings: 0
......
Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)
各个表的结构关系如图(使用MySQL workbench自动生成的er图)
数据插入,索引创建之后,开始测试数据。
[root@test3 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
-w 指定仓库数量
-c 指定并发连接数
-r 指定开始测试前进行warmup的时间,进行预热后,测试效果更好
-l 指定测试持续时间
-i 指定生成报告间隔时长
-f 指定生成的报告文件名
真实测试场景中,建议预热时间不小于5分钟,持续压测时长不小于30分钟,否则测试数据可能不具参考意义。
[root@test3 tpcc-mysql-master]# ./tpcc_start -h 10.0.102.214 -P 3306 -d tpcc_test -u root -p 123456 -w 10 -c 128 -r 120 -l 200
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '10.0.102.214'
option P with value '3306'
option d with value 'tpcc_test'
option u with value 'root'
option p with value '123456'
option w with value '10'
option c with value '128'
option r with value '120'
option l with value '200'
<Parameters>[server]: 10.0.102.214[port]: 3306[DBname]: tpcc_test[user]: root[pass]: 123456[warehouse]: 10[connection]: 128[rampup]: 120 (sec.)[measure]: 200 (sec.)RAMP-UP TIME.(120 sec.) #预热结束MEASURING START.10, trx: 2175, 95%: 201.680, 99%: 381.106, max_rt: 1619.119, 2156|3724.232, 217|229.157, 216|3278.305, 221|1335.47120, trx: 2299, 95%: 157.736, 99%: 235.577, max_rt: 1499.332, 2303|3527.383, 229|44.633, 232|2130.182, 224|343.88630, trx: 2484, 95%: 166.968, 99%: 221.357, max_rt: 398.790, 2505|1928.303, 250|66.903, 248|586.503, 246|374.86040, trx: 2429, 95%: 172.350, 99%: 256.941, max_rt: 392.431, 2416|2335.130, 242|75.140, 239|779.635, 246|403.24850, trx: 2510, 95%: 184.524, 99%: 251.689, max_rt: 336.677, 2498|1205.047, 251|35.061, 255|678.351, 252|413.73160, trx: 2170, 95%: 184.358, 99%: 828.455, max_rt: 1187.092, 2175|2113.244, 217|62.069, 218|1613.712, 219|337.85670, trx: 2539, 95%: 175.632, 99%: 233.821, max_rt: 372.486, 2539|1720.610, 253|69.966, 252|624.549, 253|397.74380, trx: 2388, 95%: 177.588, 99%: 275.997, max_rt: 717.325, 2393|1750.563, 240|50.437, 240|1046.998, 239|332.51690, trx: 2391, 95%: 190.074, 99%: 244.413, max_rt: 404.727, 2394|1602.446, 238|68.237, 238|812.026, 241|393.183100, trx: 2458, 95%: 190.017, 99%: 291.625, max_rt: 483.963, 2450|1657.739, 247|59.142, 244|771.332, 244|404.857110, trx: 2507, 95%: 166.070, 99%: 222.753, max_rt: 321.543, 2506|1610.591, 251|80.395, 252|650.804, 253|394.323120, trx: 2130, 95%: 187.812, 99%: 552.392, max_rt: 817.886, 2145|2443.558, 213|37.962, 213|1586.296, 206|406.044130, trx: 2488, 95%: 170.299, 99%: 212.399, max_rt: 290.578, 2471|1787.442, 249|58.585, 254|601.749, 256|379.250140, trx: 2575, 95%: 178.600, 99%: 236.850, max_rt: 383.657, 2587|1550.100, 257|75.059, 253|633.108, 250|471.181150, trx: 2441, 95%: 185.133, 99%: 308.322, max_rt: 479.655, 2447|1691.942, 244|38.844, 246|802.569, 248|449.930160, trx: 2521, 95%: 172.660, 99%: 216.249, max_rt: 302.257, 2519|1521.757, 253|62.614, 252|675.931, 249|435.944170, trx: 2512, 95%: 164.290, 99%: 225.504, max_rt: 1306.804, 2505|1745.858, 251|57.538, 248|610.941, 258|530.579180, trx: 2181, 95%: 180.914, 99%: 251.463, max_rt: 1415.735, 2183|2489.273, 217|30.965, 221|1915.949, 214|428.293190, trx: 2398, 95%: 197.262, 99%: 399.086, max_rt: 556.640, 2409|1319.926, 241|57.555, 238|977.416, 240|491.435200, trx: 2470, 95%: 177.428, 99%: 217.612, max_rt: 341.156, 2448|1357.371, 245|76.254, 248|655.950, 246|457.847STOPPING THREADS................................................................................................................................<Raw Results>[0] sc:0 lt:48066 rt:0 fl:0 avg_rt: 148.6 (5)[1] sc:1 lt:48049 rt:0 fl:0 avg_rt: 604.9 (5)[2] sc:3986 lt:819 rt:0 fl:0 avg_rt: 6.6 (5)[3] sc:0 lt:4807 rt:0 fl:0 avg_rt: 683.6 (80)[4] sc:0 lt:4805 rt:0 fl:0 avg_rt: 272.2 (20)in 200 sec.<Raw Results2(sum ver.)>[0] sc:0 lt:48066 rt:0 fl:0 [1] sc:1 lt:48054 rt:0 fl:0 [2] sc:3986 lt:819 rt:0 fl:0 [3] sc:0 lt:4807 rt:0 fl:0 [4] sc:0 lt:4805 rt:0 fl:0 <Constraint Check> (all must be [OK])[transaction percentage]Payment: 43.47% (>=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: 0.00% [NG] *Payment: 0.00% [NG] *Order-Status: 82.96% [NG] *Delivery: 0.00% [NG] *Stock-Level: 0.00% [NG] *<TpmC>14419.800 TpmC
[root@test3 tpcc-mysql-master]#
转载至https://www.cnblogs.com/wxzhe/p/10027474.html
MySQL测试工具之-TPCC(业界通用的压测工具)相关推荐
- 精准容量、秒级弹性,压测工具 + SAE 方案如何成功突破传统大促难关?
作者 | 代序 阿里云云原生技术团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文 ...
- 从0到1构建美团压测工具
背景 美团内部的RPC服务大多构建在Thrift之上,在日常开发服务的过程中,需要针对这些服务进行压力测试(以下简称压测)来发现潜在问题.常用的方法有: 使用一些脚本语言如:Python.Ruby等, ...
- 性能压测工具选型对比
本文是<Performance Test Together>(简称PTT)系列专题分享的第二期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景等多个纬度对性能压测的全 ...
- web版本 开源压测工具_Web压测工具之Webbench和http_load
Webbench简介 是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况. webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每 ...
- 常用的HTTP服务压测工具
文章目录 一.压测介绍 1.简介 2.压测相关术语 3.压测常用工具 二.压测工具介绍 1.ab压测 1.1 介绍 1.2 ab压测使用 2.wrk压测 2.1 介绍 2.2 安装 2.3 wrk压测 ...
- jmeter,TCPCopy,loadrunner 等测试压测工具使用教程
2.JMeter环境设置 – Jmeter中文网 Apache JMeter - User's Manual: Getting Started JMeter学习(一)工具简单介绍 - 阳光温暖了心情 ...
- oracle 压测工具 ld,Oracle压力测试工具使用说明
博客文章除注明转载外,均为原创. 1.下载安装 Download: 2.安装 ./HammerDB-2.20-Linux-x86-64-Install 安装完成后,进入目录 cd HammerDB- ...
- 压测工具BenchmarkSQL对OceanBase开源版3.1.2性能测试调优
作者:马顺华 从事运维管理工作多年,目前就职于六棱镜(杭州)科技有限公司,熟悉运维自动化.OceanBase部署运维.MySQL 运维以及各种云平台技术和产品.并已获得OceanBase认证OBCA. ...
- jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化
Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...
最新文章
- centos7 安装 oracle 11G
- Spring发送带附件邮件
- 他无意间玩了这12个游戏,却掌握了Python基础,前后只用了一个月
- 修复IE的浮动元素双倍边距Bug
- python引用参数在哪里_参数在Python中是否通过引用传递
- 力扣-451 根据字符出现频率排序
- 单片机编程使用的c语言软件有哪些,单片机编程用什么语言_单片机编程语言推荐...
- windows类书的学习心得
- nifi集群_【NIFI】 Apache NiFI 集群搭建
- WPS 二维表格匹配方式(利用VLOOKUP+IF/SWITCH多条件查询)
- 大数据分析:家庭教育的10个主要问题
- core_cm3.h文件报错问题
- JAVA学习:基础入门(下)
- 《位置大数据隐私管理》—— 第1章 位置信息与隐私保护 1.1 位置大数据
- 成都普赛睿生物医药科技有限公司-IT岗位招聘
- Flutter文本输入框-TextField
- Android微信登陆
- Android自定义控件三部曲文章索引
- 计算机网络 四、五层协议体系结构-----数据链路层
- 玩转微信小程序 之 获取用户信息以及玩转基本列表渲染(2019/04/14)
热门文章
- ino查看工具android版,Tian Wang INO
- android家庭理财系统毕业设计报告,毕业设计(论文)-基于Android的家庭理财通系统设计.doc...
- 每日一题-Acwing2058笨拙的手指-位运算-枚举
- Linux查看网络连接情况ss,Linux网络状态工具netstat和ss使用详解
- 初学Python可能会遇见的小程序
- 人机协同变电站智能化发展,嵌入式为电网安全护航
- marvell raid linux,MARVELL RAID管理软件操作演示
- lazada发货_lazada的物流发货方式详解!
- 前端唯一标识那些事儿
- 流氓软件插件中介商自述黑色淘金路(转)