@@ -224,11 +224,12 @@ Stock-Level:库存,主要对应 stock 表
224
224
- 记得在 RDS 添加账号和给账号配置权限,包括:配置权限、数据权限(默认添加账号后都是没有开启的,还要自己手动开启)
225
225
- 还要添加内网 ECS 到 RDS 的白名单 IP 里面
226
226
- 或者在 RDS 上开启外网访问设置,但是也设置 IP 白名单(访问 ip.cn 查看自己的外网 IP 地址,比如:120.85.112.97)
227
+ - RDS 的内网地址和外网地址不一样,要认真看。
227
228
228
229
```
229
- ping rm-wz9066qo44wn500t55o .mysql.rds.aliyuncs.com
230
+ ping rm-wz9v0vej02ys79jbj .mysql.rds.aliyuncs.com
230
231
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
232
233
233
234
输入密码:Aa123456
234
235
```
@@ -242,91 +243,279 @@ CREATE DATABASE TPCC DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
242
243
243
244
导入项目中的出初始化数据脚本:
244
245
创建表: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
+
245
248
创建索引和外键: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
246
250
```
247
251
248
252
249
253
### 测试
250
254
251
255
- 数据库:阿里云 RDS-MySQL-5.7-2C4G
252
- - 测试机:阿里云 ECS-4C8G-CentOS7.6
256
+ - 测试机:阿里云 ECS-4C4G-CentOS7.6
257
+ - 根据测试,不同的 ECS 测试机,不同的 RDS 测试结果有时候差距挺大的,这个很蛋疼。
253
258
254
259
- 需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个 socket 文件。因此,如果你的socket文件不在相应路径的话,可以做个软连接,或者通过TCP/IP的方式连接测试服务器
255
260
- 准备数据:
256
261
257
262
```
258
263
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
+
267
270
268
271
插入过程 RDS-2C4G 的监控情况:
269
- CPU利用率 4 %
270
- 内存 18 % ~ 40% (随着数据增加而增大)
272
+ CPU利用率 24 %
273
+ 内存 30 % ~ 40% (随着数据增加而增大)
271
274
连接数:1%
272
- IOPS:4 %
275
+ IOPS:9 %
273
276
已使用存储空间:5.5G ~ 10G
274
277
275
278
要模拟出够真实的数据,仓库不要太少,一般要大于 100,
276
- 当然你也可以 select count(*) from 上面的各个表,看下 100 个库生成的数据,是不是跟你预期数据差不多,是的话就够了。
279
+ 下面是基于 80 个库的最终数据:
277
280
278
281
select count(*) from customer;
279
- 10s X 10 X 100 = 10000s
280
-
282
+ 2400000
281
283
select count(*) from district;
284
+ 800
282
285
select count(*) from history;
286
+ 2400000
283
287
select count(*) from item;
284
- 100 个仓库 == 1000 X 100 == 100000 == 10W
288
+ 100000
285
289
select count(*) from new_orders;
290
+ 720000
286
291
select count(*) from order_line;
292
+ 23996450
287
293
select count(*) from orders;
294
+ 2400000
288
295
select count(*) from stock;
289
- 100 个仓库 == 100000 X 100 == 10000000 = 1000W
296
+ 8000000
290
297
select count(*) from warehouse;
298
+ 80
291
299
```
292
300
293
301
- 开始测试:
294
302
295
303
```
296
304
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
298
306
299
307
-w 100 表示 100 个仓库数据
300
308
-c 200 表示并发 200 个线程
301
309
-r 300 表示预热 300 秒
302
- -l 2400 表示持续压测 2400 秒
303
-
310
+ -l 1800 表示持续压测 1800 秒
304
311
```
305
312
306
313
307
314
### 报表
308
315
309
316
310
317
```
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
+ ```
312
323
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
319
326
320
327
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] *
321
362
322
363
<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
+
326
370
```
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] *
327
404
405
+ <TpmC>
406
+ 13552.467 TpmC
407
+ ```
328
408
329
409
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
+
330
519
331
520
## 资料
332
521
0 commit comments