Skip to content

Commit 5be37d3

Browse files
author
zhang
committed
2019-03-25 补充 TPCC-MySQL
1 parent 1072550 commit 5be37d3

File tree

1 file changed

+221
-32
lines changed

1 file changed

+221
-32
lines changed

markdown-file/Mysql-Test.md

Lines changed: 221 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,12 @@ Stock-Level:库存,主要对应 stock 表
224224
- 记得在 RDS 添加账号和给账号配置权限,包括:配置权限、数据权限(默认添加账号后都是没有开启的,还要自己手动开启)
225225
- 还要添加内网 ECS 到 RDS 的白名单 IP 里面
226226
- 或者在 RDS 上开启外网访问设置,但是也设置 IP 白名单(访问 ip.cn 查看自己的外网 IP 地址,比如:120.85.112.97)
227+
- RDS 的内网地址和外网地址不一样,要认真看。
227228

228229
```
229-
ping rm-wz9066qo44wn500t55o.mysql.rds.aliyuncs.com
230+
ping rm-wz9v0vej02ys79jbj.mysql.rds.aliyuncs.com
230231
231-
mysql -h rm-wz9066qo44wn500t55o.mysql.rds.aliyuncs.com -P 3306 -u myaccount -p
232+
mysql -h rm-wz9v0vej02ys79jbj.mysql.rds.aliyuncs.com -P 3306 -u myaccount -p
232233
233234
输入密码:Aa123456
234235
```
@@ -242,91 +243,279 @@ CREATE DATABASE TPCC DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
242243
243244
导入项目中的出初始化数据脚本:
244245
创建表:create_table.sql
246+
/usr/bin/mysql -h rm-wz9v0vej02ys79jbj.mysql.rds.aliyuncs.com -u myaccount -p tpcc < /root/tpcc-mysql/create_table.sql
247+
245248
创建索引和外键:add_fkey_idx.sql
249+
/usr/bin/mysql -h rm-wz9v0vej02ys79jbj.mysql.rds.aliyuncs.com -u myaccount -p tpcc < /root/tpcc-mysql/add_fkey_idx.sql
246250
```
247251

248252

249253
### 测试
250254

251255
- 数据库:阿里云 RDS-MySQL-5.7-2C4G
252-
- 测试机:阿里云 ECS-4C8G-CentOS7.6
256+
- 测试机:阿里云 ECS-4C4G-CentOS7.6
257+
- 根据测试,不同的 ECS 测试机,不同的 RDS 测试结果有时候差距挺大的,这个很蛋疼。
253258

254259
- 需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个 socket 文件。因此,如果你的socket文件不在相应路径的话,可以做个软连接,或者通过TCP/IP的方式连接测试服务器
255260
- 准备数据:
256261

257262
```
258263
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 左右。
264+
./tpcc_load -h rm-wz9v0vej02ys79jbj.mysql.rds.aliyuncs.com -P 3306 -d TPCC -u myaccount -p Aa123456 -w 80
265+
-w 80 表示创建 80 个仓库数据
266+
这个过程花费时间还是挺长的,建议测试机是高性能计算型。2CPU 差不多要 8h,你自己估量下。
267+
我这边 RDS 监控中,曲线上每秒 insert 差不多在 2W 差不多,如果你没有这个数,速度可能就很慢了。
268+
我这边差不多用了 2.5h 完成数据准备。
269+
267270
268271
插入过程 RDS-2C4G 的监控情况:
269-
CPU利用率 4%
270-
内存 18% ~ 40% (随着数据增加而增大)
272+
CPU利用率 24%
273+
内存 30% ~ 40% (随着数据增加而增大)
271274
连接数:1%
272-
IOPS:4%
275+
IOPS:9%
273276
已使用存储空间:5.5G ~ 10G
274277
275278
要模拟出够真实的数据,仓库不要太少,一般要大于 100,
276-
当然你也可以 select count(*) from 上面的各个表,看下 100 个库生成的数据,是不是跟你预期数据差不多,是的话就够了。
279+
下面是基于 80 个库的最终数据:
277280
278281
select count(*) from customer;
279-
10s X 10 X 100 = 10000s
280-
282+
2400000
281283
select count(*) from district;
284+
800
282285
select count(*) from history;
286+
2400000
283287
select count(*) from item;
284-
100 个仓库 == 1000 X 100 == 100000 == 10W
288+
100000
285289
select count(*) from new_orders;
290+
720000
286291
select count(*) from order_line;
292+
23996450
287293
select count(*) from orders;
294+
2400000
288295
select count(*) from stock;
289-
100 个仓库 == 100000 X 100 == 10000000 = 1000W
296+
8000000
290297
select count(*) from warehouse;
298+
80
291299
```
292300

293301
- 开始测试:
294302

295303
```
296304
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
305+
./tpcc_start -h rm-wz9v0vej02ys79jbj.mysql.rds.aliyuncs.com -P 3306 -d TPCC -u myaccount -p Aa123456 -w 80 -c 200 -r 300 -l 1800 -f /opt/mysql_tpcc_100_20190325
298306
299307
-w 100 表示 100 个仓库数据
300308
-c 200 表示并发 200 个线程
301309
-r 300 表示预热 300 秒
302-
-l 2400 表示持续压测 2400 秒
303-
310+
-l 1800 表示持续压测 1800 秒
304311
```
305312

306313

307314
### 报表
308315

309316

310317
```
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
318+
<TpmC>
319+
188.000 TpmC
320+
TpmC结果值(每分钟事务数,该值是第一次统计结果中的新订单事务数除以总耗时分钟数,例如本例中是:372/2=186)
321+
tpmC值在国内外被广泛用于衡量计算机系统的事务处理能力
322+
```
312323

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: 库存查询业务
324+
- RDS-2C4G-80个仓库结果:
325+
- CPU:100%,内存:34%,连接数:17%,IOPS:62%,磁盘空间:20G
319326

320327

328+
```
329+
1780, trx: 979, 95%: 1849.535, 99%: 2402.613, max_rt: 3401.947, 986|3248.772, 98|698.821, 103|4202.110, 101|4547.416
330+
1790, trx: 1021, 95%: 1898.903, 99%: 2700.936, max_rt: 3848.142, 999|3150.117, 100|500.740, 102|3600.104, 100|5551.834
331+
1800, trx: 989, 95%: 1899.472, 99%: 2847.899, max_rt: 4455.064, 989|3049.921, 101|699.144, 97|3599.021, 102|5151.141
332+
333+
STOPPING THREADS........................................................................................................................................................................................................
334+
335+
<Raw Results>
336+
[0] sc:2 lt:174378 rt:0 fl:0 avg_rt: 1192.8 (5)
337+
[1] sc:253 lt:173935 rt:0 fl:0 avg_rt: 542.7 (5)
338+
[2] sc:4726 lt:12712 rt:0 fl:0 avg_rt: 144.7 (5)
339+
[3] sc:0 lt:17435 rt:0 fl:0 avg_rt: 3029.8 (80)
340+
[4] sc:0 lt:17435 rt:0 fl:0 avg_rt: 3550.7 (20)
341+
in 1800 sec.
342+
343+
<Raw Results2(sum ver.)>
344+
[0] sc:2 lt:174378 rt:0 fl:0
345+
[1] sc:254 lt:174096 rt:0 fl:0
346+
[2] sc:4726 lt:12712 rt:0 fl:0
347+
[3] sc:0 lt:17437 rt:0 fl:0
348+
[4] sc:0 lt:17435 rt:0 fl:0
349+
350+
<Constraint Check> (all must be [OK])
351+
[transaction percentage]
352+
Payment: 43.45% (>=43.0%) [OK]
353+
Order-Status: 4.35% (>= 4.0%) [OK]
354+
Delivery: 4.35% (>= 4.0%) [OK]
355+
Stock-Level: 4.35% (>= 4.0%) [OK]
356+
[response time (at least 90% passed)]
357+
New-Order: 0.00% [NG] *
358+
Payment: 0.15% [NG] *
359+
Order-Status: 27.10% [NG] *
360+
Delivery: 0.00% [NG] *
361+
Stock-Level: 0.00% [NG] *
321362
322363
<TpmC>
323-
188.000 TpmC
324-
TpmC结果值(每分钟事务数,该值是第一次统计结果中的新订单事务数除以总耗时分钟数,例如本例中是:372/2=186)
325-
tpmC值在国内外被广泛用于衡量计算机系统的事务处理能力
364+
5812.667 TpmC
365+
```
366+
367+
- 升级:RDS-4C8G-80个仓库结果
368+
- CPU:100%,内存:55%,连接数:10%,IOPS:20%,磁盘空间:25G
369+
326370
```
371+
1780, trx: 2303, 95%: 796.121, 99%: 1099.640, max_rt: 1596.883, 2293|2249.288, 232|256.393, 230|1694.050, 235|2550.775
372+
1790, trx: 2336, 95%: 798.030, 99%: 1093.403, max_rt: 1547.840, 2338|2803.739, 234|305.185, 232|1799.869, 228|2453.748
373+
1800, trx: 2305, 95%: 801.381, 99%: 1048.528, max_rt: 1297.465, 2306|1798.565, 229|304.329, 227|1649.609, 233|2549.599
374+
375+
STOPPING THREADS........................................................................................................................................................................................................
376+
377+
<Raw Results>
378+
[0] sc:7 lt:406567 rt:0 fl:0 avg_rt: 493.7 (5)
379+
[1] sc:10485 lt:395860 rt:0 fl:0 avg_rt: 240.1 (5)
380+
[2] sc:24615 lt:16045 rt:0 fl:0 avg_rt: 49.4 (5)
381+
[3] sc:0 lt:40651 rt:0 fl:0 avg_rt: 1273.6 (80)
382+
[4] sc:0 lt:40656 rt:0 fl:0 avg_rt: 1665.3 (20)
383+
in 1800 sec.
384+
385+
<Raw Results2(sum ver.)>
386+
[0] sc:7 lt:406569 rt:0 fl:0
387+
[1] sc:10487 lt:396098 rt:0 fl:0
388+
[2] sc:24615 lt:16045 rt:0 fl:0
389+
[3] sc:0 lt:40655 rt:0 fl:0
390+
[4] sc:0 lt:40659 rt:0 fl:0
391+
392+
<Constraint Check> (all must be [OK])
393+
[transaction percentage]
394+
Payment: 43.46% (>=43.0%) [OK]
395+
Order-Status: 4.35% (>= 4.0%) [OK]
396+
Delivery: 4.35% (>= 4.0%) [OK]
397+
Stock-Level: 4.35% (>= 4.0%) [OK]
398+
[response time (at least 90% passed)]
399+
New-Order: 0.00% [NG] *
400+
Payment: 2.58% [NG] *
401+
Order-Status: 60.54% [NG] *
402+
Delivery: 0.00% [NG] *
403+
Stock-Level: 0.00% [NG] *
327404
405+
<TpmC>
406+
13552.467 TpmC
407+
```
328408

329409

410+
- 升级:RDS-8C16G-80个仓库结果
411+
- CPU:100%,内存:35%,连接数:5%,IOPS:18%,磁盘空间:30G
412+
413+
```
414+
1780, trx: 4502, 95%: 398.131, 99%: 501.634, max_rt: 772.128, 4473|740.073, 446|183.361, 448|1042.264, 442|1302.569
415+
1790, trx: 4465, 95%: 398.489, 99%: 541.424, max_rt: 803.659, 4476|845.313, 448|152.917, 450|997.319, 454|1250.160
416+
1800, trx: 4506, 95%: 397.774, 99%: 501.334, max_rt: 747.074, 4508|701.625, 453|108.619, 450|1052.293, 451|1107.277
417+
418+
STOPPING THREADS........................................................................................................................................................................................................
419+
420+
<Raw Results>
421+
[0] sc:20 lt:803738 rt:0 fl:0 avg_rt: 240.5 (5)
422+
[1] sc:13844 lt:789535 rt:0 fl:0 avg_rt: 128.5 (5)
423+
[2] sc:54560 lt:25817 rt:0 fl:0 avg_rt: 22.1 (5)
424+
[3] sc:0 lt:80372 rt:0 fl:0 avg_rt: 739.8 (80)
425+
[4] sc:0 lt:80378 rt:0 fl:0 avg_rt: 771.1 (20)
426+
in 1800 sec.
427+
428+
<Raw Results2(sum ver.)>
429+
[0] sc:20 lt:803747 rt:0 fl:0
430+
[1] sc:13845 lt:789916 rt:0 fl:0
431+
[2] sc:54561 lt:25817 rt:0 fl:0
432+
[3] sc:0 lt:80377 rt:0 fl:0
433+
[4] sc:0 lt:80381 rt:0 fl:0
434+
435+
<Constraint Check> (all must be [OK])
436+
[transaction percentage]
437+
Payment: 43.47% (>=43.0%) [OK]
438+
Order-Status: 4.35% (>= 4.0%) [OK]
439+
Delivery: 4.35% (>= 4.0%) [OK]
440+
Stock-Level: 4.35% (>= 4.0%) [OK]
441+
[response time (at least 90% passed)]
442+
New-Order: 0.00% [NG] *
443+
Payment: 1.72% [NG] *
444+
Order-Status: 67.88% [NG] *
445+
Delivery: 0.00% [NG] *
446+
Stock-Level: 0.00% [NG] *
447+
448+
<TpmC>
449+
26791.934 TpmC
450+
```
451+
452+
453+
- 升级:RDS-16C64G-80个仓库结果
454+
- CPU:100%,内存:18%,连接数:2%,IOPS:10%,磁盘空间:40G
455+
456+
```
457+
1780, trx: 8413, 95%: 203.560, 99%: 279.322, max_rt: 451.010, 8414|441.849, 841|92.900, 839|583.340, 843|644.276
458+
1790, trx: 8269, 95%: 204.599, 99%: 282.602, max_rt: 444.075, 8262|412.414, 827|91.551, 831|665.421, 824|616.396
459+
1800, trx: 8395, 95%: 202.285, 99%: 255.026, max_rt: 436.136, 8404|446.292, 839|87.081, 839|609.221, 842|697.509
460+
461+
STOPPING THREADS........................................................................................................................................................................................................
462+
463+
<Raw Results>
464+
[0] sc:37 lt:1532893 rt:0 fl:0 avg_rt: 124.8 (5)
465+
[1] sc:36091 lt:1496111 rt:0 fl:0 avg_rt: 68.5 (5)
466+
[2] sc:105738 lt:47555 rt:0 fl:0 avg_rt: 11.4 (5)
467+
[3] sc:0 lt:153285 rt:0 fl:0 avg_rt: 404.6 (80)
468+
[4] sc:0 lt:153293 rt:0 fl:0 avg_rt: 389.5 (20)
469+
in 1800 sec.
470+
471+
<Raw Results2(sum ver.)>
472+
[0] sc:37 lt:1532918 rt:0 fl:0
473+
[1] sc:36093 lt:1496868 rt:0 fl:0
474+
[2] sc:105739 lt:47556 rt:0 fl:0
475+
[3] sc:0 lt:153297 rt:0 fl:0
476+
[4] sc:0 lt:153298 rt:0 fl:0
477+
478+
<Constraint Check> (all must be [OK])
479+
[transaction percentage]
480+
Payment: 43.47% (>=43.0%) [OK]
481+
Order-Status: 4.35% (>= 4.0%) [OK]
482+
Delivery: 4.35% (>= 4.0%) [OK]
483+
Stock-Level: 4.35% (>= 4.0%) [OK]
484+
[response time (at least 90% passed)]
485+
New-Order: 0.00% [NG] *
486+
Payment: 2.36% [NG] *
487+
Order-Status: 68.98% [NG] *
488+
Delivery: 0.00% [NG] *
489+
Stock-Level: 0.00% [NG] *
490+
491+
<TpmC>
492+
51097.668 TpmC
493+
```
494+
495+
496+
- 几轮下来,最终数据量:
497+
498+
```
499+
select count(*) from customer;
500+
2400000
501+
select count(*) from district;
502+
800
503+
select count(*) from history;
504+
5779395
505+
select count(*) from item;
506+
100000
507+
select count(*) from new_orders;
508+
764970
509+
select count(*) from order_line;
510+
57453708
511+
select count(*) from orders;
512+
5745589
513+
select count(*) from stock;
514+
8000000
515+
select count(*) from warehouse;
516+
80
517+
```
518+
330519

331520
## 资料
332521

0 commit comments

Comments
 (0)