@@ -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```
258263cd /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
278281select count(*) from customer;
279- 10s X 10 X 100 = 10000s
280-
282+ 2400000
281283select count(*) from district;
284+ 800
282285select count(*) from history;
286+ 2400000
283287select count(*) from item;
284- 100 个仓库 == 1000 X 100 == 100000 == 10W
288+ 100000
285289select count(*) from new_orders;
290+ 720000
286291select count(*) from order_line;
292+ 23996450
287293select count(*) from orders;
294+ 2400000
288295select count(*) from stock;
289- 100 个仓库 == 100000 X 100 == 10000000 = 1000W
296+ 8000000
290297select 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