Skip to content

Commit 1072550

Browse files
committed
2019-03-24 补充 TPPC-MySQL
1 parent bbde6a0 commit 1072550

File tree

2 files changed

+177
-0
lines changed

2 files changed

+177
-0
lines changed

markdown-file/Mysql-Install-And-Settings.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,27 @@ rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
148148
- `ln -s /usr/local/mysql/bin/mysqldump /usr/bin`
149149
- `ln -s /usr/local/mysql/bin/mysqlslap /usr/bin`
150150

151+
## MySQL 5.7 YUM 安装
152+
153+
- 官网:<https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html>
154+
155+
```
156+
157+
禁用 selinux:setenforce 0
158+
159+
wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
160+
yum localinstall mysql57-community-release-el7-11.noarch.rpm
161+
yum install mysql-community-server
162+
一共 194M
163+
164+
配置文件:/etc/my.cnf
165+
systemctl start mysqld
166+
systemctl status mysqld
167+
168+
查看初次使用的临时密码:grep 'temporary password' /var/log/mysqld.log
169+
170+
```
171+
151172
-------------------------------------------------------------------
152173

153174

markdown-file/Mysql-Test.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
- `--debug-info` 代表要额外输出 CPU 以及内存的相关信息。
4848
- `--only-print` 打印压力测试的时候 mysqlslap 到底做了什么事,通过 sql 语句方式告诉我们。
4949

50+
-------------------------------------------------------------------
51+
5052

5153
## sysbench 工具
5254

@@ -148,6 +150,8 @@ Threads fairness:
148150
events (avg/stddev): 2748.6000/132.71 --总处理事件数/标准偏差
149151
execution time (avg/stddev): 119.9907/0.00 --总执行时间/标准偏差
150152

153+
-------------------------------------------------------------------
154+
151155
## QPS 和 TPS 和说明
152156

153157
### 基本概念
@@ -171,6 +175,157 @@ Threads fairness:
171175
- 每天300wPV的在单台机器上,这台机器需要多少QPS?对于这样的问题,假设每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。( 3000000 * 0.8 ) / (3600 * 24 * 0.2 ) = 139 (QPS).
172176
- 如果一台机器的QPS是58,需要几台机器来支持?答:139 / 58 = 3
173177

178+
-------------------------------------------------------------------
179+
180+
## Percona TPCC-MySQL 测试工具(优先推荐)
181+
182+
- 可以较好地模拟真实测试结果数据
183+
- 官网主页:<https://github.com/Percona-Lab/tpcc-mysql>
184+
185+
```
186+
TPC-C 是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。
187+
TPC-C是TPC(Transaction Processing Performance Council)组织发布的一个测试规范,用于模拟测试复杂的在线事务处理系统。其测试结果包括每分钟事务数(tpmC),以及每事务的成本(Price/tpmC)。
188+
在进行大压力下MySQL的一些行为时经常使用。
189+
```
190+
191+
### 安装
192+
193+
- 先确定本机安装过 MySQL
194+
- 并且安装过:`yum install mysql-devel`
195+
196+
```
197+
git clone https://github.com/Percona-Lab/tpcc-mysql
198+
cd tpcc-mysql/src
199+
make
200+
201+
如果make没报错,就会在tpcc-mysql 根目录文件夹下生成tpcc二进制命令行工具tpcc_load、tpcc_start
202+
```
203+
204+
### 测试的几个表介绍
205+
206+
```
207+
tpcc-mysql的业务逻辑及其相关的几个表作用如下:
208+
New-Order:新订单,主要对应 new_orders 表
209+
Payment:支付,主要对应 orders、history 表
210+
Order-Status:订单状态,主要对应 orders、order_line 表
211+
Delivery:发货,主要对应 order_line 表
212+
Stock-Level:库存,主要对应 stock 表
213+
214+
其他相关表:
215+
客户:主要对应customer表
216+
地区:主要对应district表
217+
商品:主要对应item表
218+
仓库:主要对应warehouse表
219+
```
220+
221+
### 准备
222+
223+
- 测试阿里云 ECS 与 RDS 是否相通:
224+
- 记得在 RDS 添加账号和给账号配置权限,包括:配置权限、数据权限(默认添加账号后都是没有开启的,还要自己手动开启)
225+
- 还要添加内网 ECS 到 RDS 的白名单 IP 里面
226+
- 或者在 RDS 上开启外网访问设置,但是也设置 IP 白名单(访问 ip.cn 查看自己的外网 IP 地址,比如:120.85.112.97)
227+
228+
```
229+
ping rm-wz9066qo44wn500t55o.mysql.rds.aliyuncs.com
230+
231+
mysql -h rm-wz9066qo44wn500t55o.mysql.rds.aliyuncs.com -P 3306 -u myaccount -p
232+
233+
输入密码:Aa123456
234+
```
235+
236+
237+
238+
```
239+
创库,名字为:TPCC:
240+
CREATE DATABASE TPCC DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
241+
242+
243+
导入项目中的出初始化数据脚本:
244+
创建表:create_table.sql
245+
创建索引和外键:add_fkey_idx.sql
246+
```
247+
248+
249+
### 测试
250+
251+
- 数据库:阿里云 RDS-MySQL-5.7-2C4G
252+
- 测试机:阿里云 ECS-4C8G-CentOS7.6
253+
254+
- 需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个 socket 文件。因此,如果你的socket文件不在相应路径的话,可以做个软连接,或者通过TCP/IP的方式连接测试服务器
255+
- 准备数据:
256+
257+
```
258+
cd /opt/tpcc-mysql
259+
./tpcc_load -h rm-wz9066qo44wn500t55o.mysql.rds.aliyuncs.com -P 3306 -d TPCC -u myaccount -p Aa123456 -w 100
260+
-w 100 表示创建 100 个仓库数据
261+
这个过程花费时间还是挺长的,我这台 ECS 结果是这样:
262+
差不多 9s == 5000 个数据。
263+
也就是:
264+
10W 个数据需要 == 20 X 9s == 180s == 3min
265+
1000W == 5h
266+
一共差不多花了 10h 左右。
267+
268+
插入过程 RDS-2C4G 的监控情况:
269+
CPU利用率 4%
270+
内存 18% ~ 40% (随着数据增加而增大)
271+
连接数:1%
272+
IOPS:4%
273+
已使用存储空间:5.5G ~ 10G
274+
275+
要模拟出够真实的数据,仓库不要太少,一般要大于 100,
276+
当然你也可以 select count(*) from 上面的各个表,看下 100 个库生成的数据,是不是跟你预期数据差不多,是的话就够了。
277+
278+
select count(*) from customer;
279+
10s X 10 X 100 = 10000s
280+
281+
select count(*) from district;
282+
select count(*) from history;
283+
select count(*) from item;
284+
100 个仓库 == 1000 X 100 == 100000 == 10W
285+
select count(*) from new_orders;
286+
select count(*) from order_line;
287+
select count(*) from orders;
288+
select count(*) from stock;
289+
100 个仓库 == 100000 X 100 == 10000000 = 1000W
290+
select count(*) from warehouse;
291+
```
292+
293+
- 开始测试:
294+
295+
```
296+
297+
tpcc_start -h rm-wz9066qo44wn500t55o.mysql.rds.aliyuncs.com -P 3306 -d TPCC -u myaccount -p Aa123456 -w 100 -c 200 -r 300 -l 2400 -f /opt/mysql_tpcc_100_20190324
298+
299+
-w 100 表示 100 个仓库数据
300+
-c 200 表示并发 200 个线程
301+
-r 300 表示预热 300 秒
302+
-l 2400 表示持续压测 2400 秒
303+
304+
```
305+
306+
307+
### 报表
308+
309+
310+
```
311+
行数据表示:10, 1187(0):1.682|2.175, 1187(0):0.336|0.473, 118(0):0.172|0.226, 118(0):1.864|2.122, 119(0):6.953|8.107
312+
313+
10:时间戳,每十秒产生一条数据。
314+
1187(0):1.682|2.175:表示10秒内完成1187笔新订单业务。
315+
1187(0):0.336|0.473: 支付业务,
316+
118(0):1.864|2.122:查询业务,
317+
118(0):0.172|0.226: 发货业务,
318+
119(0):6.953|8.107: 库存查询业务
319+
320+
321+
322+
<TpmC>
323+
188.000 TpmC
324+
TpmC结果值(每分钟事务数,该值是第一次统计结果中的新订单事务数除以总耗时分钟数,例如本例中是:372/2=186)
325+
tpmC值在国内外被广泛用于衡量计算机系统的事务处理能力
326+
```
327+
328+
174329

175330

176331
## 资料
@@ -181,3 +336,4 @@ Threads fairness:
181336
- <http://blog.chinaunix.net/uid-25723371-id-3498970.html>
182337
- <http://nsimple.top/archives/mysql-sysbench-tool.html>
183338
- <https://dearhwj.gitbooks.io/itbook/content/test/performance_test_qps_tps.html>
339+
- <https://www.hi-linux.com/posts/38534.html>

0 commit comments

Comments
 (0)