ApsaraDB for MongoDB(ApsaraDB for MongoDB)完全相容MongoDB協議,基于飛天分布式系統和高可靠儲存引擎,提供多節點高可用架構、彈性擴容、容災、備份復原、效能最佳化等解決方案。
測試環境
配置項 | 壓測ECS執行個體 | MongoDB物理機架構執行個體 | MongoDB雲端硬碟架構執行個體 |
地區及可用性區域 | 華東1(杭州)可用性區域H | 華東1(杭州)可用性區域H | 華東1(杭州)可用性區域H |
網路類型 | Virtual Private Cloud | Virtual Private Cloud | Virtual Private Cloud |
執行個體規格類型系列 | 計算平衡增強型c6e | 通用型和獨享型 | 獨享型 |
執行個體規格 | ecs.c6e.2xlarge(8核 16 GB) | 包含多種在售規格,詳情請參見測試結果。 | 包含多種在售規格,詳情請參見測試結果。 |
儲存類型 | ESSD PL1雲端硬碟 | SSD本地碟 | ESSD PL1雲端硬碟 |
儲存空間 | - | 500 GB | 500 GB |
拓撲結構 | - | 標準複本集執行個體(三節點,一個主節點、一個從節點和一個隱藏節點) | 標準複本集執行個體(三節點,一個主節點、一個從節點和一個隱藏節點) |
鏡像版本 | Alibaba Cloud Linux 3.2104 LTS 64位 | 3.10.0-327.ali2017.alios7.x86_64 | 4.19.81-17.2.al7.x86_64 |
執行個體核心版本 | - | MongoDB 4.2(小版本基準4.2.13) | MongoDB 4.4(小版本基準4.4.1) |
可調一致性配置 | - | Default read/write concern | Default read/write concern |
說明 壓測ECS執行個體和ApsaraDB for MongoDB執行個體在同一地區及可用性區域,RTT(Round-Trip Time)大概在0.104ms左右。
測試載入器
本文將採用開源社區的YCSB 0.17.0壓測工具進行壓測。
說明 YCSB是一款Java編寫的支援多種資料庫的效能測試工具,具體安裝和使用方法請參見YCSB。
測試方案
將ECS執行個體的主私網IP添加到ApsaraDB for MongoDB執行個體的白名單中。如何添加,請參見修改白名單。
說明 您可以登入ECS控制台,在執行個體詳情頁面的網路資訊地區查看ECS執行個體的主私網IP。
遠端連線ECS執行個體。如何串連,請參見串連ECS執行個體。
使用YCSB工具載入測試資料。
./bin/ycsb load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8
您需要修改如下參數值:
recordcount=1000000:載入至ApsaraDB for MongoDB執行個體的資料總數。
mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin":ApsaraDB for MongoDB執行個體的串連地址。本文使用的資料庫帳號為test,所屬資料庫為admin。
threads 8:用戶端的並發線程數。
執行如下測試命令,進行效能壓測。
./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p operationcount=5000000 -p insertproportion=0 -p readproportion=50 -p updateproportion=50 -p requestdistribution=zipfian -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8
您需要修改如下參數值:
recordcount=1000000:載入至ApsaraDB for MongoDB執行個體的資料總數。operationcount=5000000:執行讀寫測試的總次數。
insertproportion=0:載入資料操作比例。
readproportion=50:讀操作比例。
updateproportion=50:更新操作比例。
mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin":ApsaraDB for MongoDB執行個體的串連地址。本文使用的資料庫帳號為test,所屬資料庫為admin。threads 8:用戶端的並發線程數。
測試結果
情境說明
參數說明
recordcount:載入至ApsaraDB for MongoDB執行個體的資料總數。
operationcount:執行讀寫測試的總次數。
threads:用戶端的並發線程數。
throughput:輸送量,以每秒運算元(OPS,Operation per second)為單位。
RAL:讀操作平均延遲,單位:微秒(us)。
WAL:寫操作平均延遲,單位:微秒(us)。
說明 本文中RAL或WAL取值為0,表示不涉及讀操作或寫操作。
如下為物理機架構執行個體和雲端硬碟架構執行個體在不同讀寫比下的測試結果以及效能對比圖。
物理機架構執行個體(MongoDB 4.2)
載入測試資料
CPU:Memory | 執行個體規格 | recordcount | threads | throughput | RAL | WAL |
1:2 | 1核 2 GB(通用型) | 1000000 | 4 | 3589 | 0 | 1110 |
2核 4 GB(通用型) | 2000000 | 8 | 7629 | 0 | 521 |
4核 8 GB(通用型) | 4000000 | 16 | 24300 | 0 | 654 |
8核 16 GB(通用型) | 8000000 | 32 | 26745 | 0 | 1191 |
1:4 | 8核 32 GB(通用型) | 16000000 | 32 | 29090 | 0 | 1095 |
16核 64 GB(通用型) | 32000000 | 128 | 41098 | 0 | 3033 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 6553 | 0 | 1217 |
4核 32 GB(獨享型) | 16000000 | 16 | 14526 | 0 | 1097 |
8核 64 GB(獨享型) | 32000000 | 32 | 35437 | 0 | 899 |
16核 128 GB(獨享型) | 64000000 | 160 | 60078 | 0 | 2658 |
r:w=100:0
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 1核 2 GB(通用型) | 1000000 | 4 | 6387 | 623 | 0 |
2核 4 GB(通用型) | 2000000 | 8 | 12893 | 616 | 0 |
4核 8 GB(通用型) | 4000000 | 16 | 37016 | 427 | 0 |
8核 16 GB(通用型) | 8000000 | 32 | 48014 | 658 | 0 |
1:4 | 8核 32 GB(通用型) | 16000000 | 32 | 44251 | 1589 | 0 |
16核 64 GB(通用型) | 32000000 | 128 | 57252 | 2226 | 0 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 12436 | 641 | 0 |
4核 32 GB(獨享型) | 16000000 | 16 | 20551 | 773 | 0 |
8核 64 GB(獨享型) | 32000000 | 32 | 50246 | 632 | 0 |
16核 128 GB(獨享型) | 64000000 | 160 | 66876 | 2385 | 0 |
r:w=95:5
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 1核 2 GB(通用型) | 1000000 | 4 | 4556 | 864 | 1079 |
2核 4 GB(通用型) | 2000000 | 8 | 10391 | 757 | 914 |
4核 8 GB(通用型) | 4000000 | 16 | 34411 | 453 | 561 |
8核 16 GB(通用型) | 8000000 | 32 | 41095 | 763 | 925 |
1:4 | 8核 32 GB(通用型) | 16000000 | 32 | 39920 | 785 | 926 |
16核 64 GB(通用型) | 32000000 | 128 | 55148 | 2305 | 2381 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 8869 | 871 | 1394 |
4核 32 GB(獨享型) | 16000000 | 16 | 18206 | 856 | 1192 |
8核 64 GB(獨享型) | 32000000 | 32 | 47111 | 664 | 861 |
16核 128 GB(獨享型) | 64000000 | 160 | 68801 | 2312 | 2449 |
r:w=50:50
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 1核 2 GB(通用型) | 1000000 | 4 | 3062 | 1207 | 1399 |
2核 4 GB(通用型) | 2000000 | 8 | 6610 | 1128 | 1318 |
4核 8 GB(通用型) | 4000000 | 16 | 19743 | 743 | 864 |
8核 16 GB(通用型) | 8000000 | 32 | 22750 | 987 | 1809 |
1:4 | 8核 32 GB(通用型) | 16000000 | 32 | 21763 | 1010 | 1907 |
16核 64 GB(通用型) | 32000000 | 128 | 43498 | 2162 | 3696 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 5680 | 1345 | 1930 |
4核 32 GB(獨享型) | 16000000 | 16 | 10470 | 1064 | 1971 |
8核 64 GB(獨享型) | 32000000 | 32 | 20427 | 790 | 2329 |
16核 128 GB(獨享型) | 64000000 | 160 | 29445 | 2944 | 7891 |
r:w=5:95
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 1核 2 GB(通用型) | 1000000 | 4 | 2431 | 1511 | 1649 |
2核 4 GB(通用型) | 2000000 | 8 | 5336 | 1406 | 1608 |
4核 8 GB(通用型) | 4000000 | 16 | 14496 | 858 | 1110 |
8核 16 GB(通用型) | 8000000 | 32 | 14573 | 958 | 2253 |
1:4 | 8核 32 GB(通用型) | 16000000 | 32 | 13812 | 995 | 2377 |
16核 64 GB(通用型) | 32000000 | 128 | 20663 | 2831 | 6348 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 4079 | 3201 | 8066 |
4核 32 GB(獨享型) | 16000000 | 16 | 7154 | 1080 | 2288 |
8核 64 GB(獨享型) | 32000000 | 32 | 12585 | 783 | 2626 |
16核 128 GB(獨享型) | 64000000 | 160 | 17083 | 4241 | 9615 |
r:w=0:100
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 1核 2 GB(通用型) | 1000000 | 4 | 2429 | 0 | 1642 |
2核 4 GB(通用型) | 2000000 | 8 | 5238 | 0 | 1643 |
4核 8 GB(通用型) | 4000000 | 16 | 13794 | 0 | 1154 |
8核 16 GB(通用型) | 8000000 | 32 | 14566 | 0 | 2189 |
1:4 | 8核 32 GB(通用型) | 16000000 | 32 | 13485 | 0 | 2361 |
16核 64 GB(通用型) | 32000000 | 128 | 19758 | 0 | 6461 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 3939 | 0 | 8097 |
4核 32 GB(獨享型) | 16000000 | 16 | 6940 | 0 | 2298 |
8核 64 GB(獨享型) | 32000000 | 32 | 12567 | 0 | 2539 |
16核 128 GB(獨享型) | 64000000 | 160 | 16325 | 0 | 9770 |
雲端硬碟架構執行個體(MongoDB 4.4)
載入測試資料
CPU:Memory | 執行個體規格 | recordcount | threads | throughput | RAL | WAL |
1:2 | 4核 8 GB(獨享型) | 4000000 | 16 | 18235 | 0 | 871 |
8核 16 GB(獨享型) | 8000000 | 32 | 35643 | 0 | 891 |
16核 32 GB(獨享型) | 16000000 | 64 | 65345 | 0 | 971 |
1:4 | 2核 8 GB(獨享型) | 4000000 | 8 | 6613 | 0 | 1202 |
8核 32 GB(獨享型) | 16000000 | 64 | 45952 | 0 | 1385 |
16核 64 GB(獨享型) | 32000000 | 96 | 61973 | 0 | 1539 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 6224 | 0 | 1280 |
4核 32 GB(獨享型) | 16000000 | 16 | 18603 | 0 | 857 |
r:w=100:0
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 4核 8 GB(獨享型) | 4000000 | 16 | 24945 | 634 | 0 |
8核 16 GB(獨享型) | 8000000 | 32 | 33270 | 938 | 0 |
16核 32 GB(獨享型) | 16000000 | 64 | 55703 | 1136 | 0 |
1:4 | 2核 8 GB(獨享型) | 4000000 | 8 | 10989 | 723 | 0 |
8核 32 GB(獨享型) | 16000000 | 64 | 36039 | 1740 | 0 |
16核 64 GB(獨享型) | 32000000 | 96 | 59960 | 1585 | 0 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 11298 | 703 | 0 |
4核 32 GB(獨享型) | 16000000 | 16 | 24306 | 653 | 0 |
r:w=95:5
CPU:Memory | 執行個體規格 | operatiocount | threads | throughput | RAL | WAL |
1:2 | 4核 8 GB(獨享型) | 4000000 | 16 | 22471 | 797 | 1161 |
8核 16 GB(獨享型) | 8000000 | 32 | 29543 | 1064 | 1199 |
16核 32 GB(獨享型) | 16000000 | 64 | 53466 | 1178 | 1300 |
1:4 | 2核 8 GB(獨享型) | 4000000 | 8 | 8986 | 854 | 1480 |
8核 32 GB(獨享型) | 16000000 | 64 | 34128 | 1829 | 1970 |
16核 64 GB(獨享型) | 32000000 | 96 | 78363 | 1196 | 1420 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 8806 | 867 | 1619 |
4核 32 GB(獨享型) | 16000000 | 16 | 20132 | 770 | 1181 |
r:w=50:50
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 4核 8 GB(獨享型) | 4000000 | 16 | 14127 | 1009 | 1238 |
8核 16 GB(獨享型) | 8000000 | 32 | 19887 | 1496 | 1670 |
16核 32 GB(獨享型) | 16000000 | 64 | 23120 | 2680 | 2819 |
1:4 | 2核 8 GB(獨享型) | 4000000 | 8 | 5132 | 1370 | 1735 |
8核 32 GB(獨享型) | 16000000 | 64 | 18929 | 2930 | 3615 |
16核 64 GB(獨享型) | 32000000 | 96 | 25612 | 3675 | 4363 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 4841 | 1438 | 1855 |
4核 32 GB(獨享型) | 16000000 | 16 | 13051 | 1080 | 1356 |
r:w=5:95
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 4核 8 GB(獨享型) | 4000000 | 16 | 10266 | 1141 | 1570 |
8核 16 GB(獨享型) | 8000000 | 32 | 13556 | 2141 | 2351 |
16核 32 GB(獨享型) | 16000000 | 64 | 14447 | 4295 | 4412 |
1:4 | 2核 8 GB(獨享型) | 4000000 | 8 | 4226 | 1591 | 1902 |
8核 32 GB(獨享型) | 16000000 | 64 | 12055 | 5109 | 5210 |
16核 64 GB(獨享型) | 32000000 | 96 | 15216 | 5877 | 8503 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 3874 | 1792 | 2072 |
4核 32 GB(獨享型) | 16000000 | 16 | 10083 | 1106 | 1605 |
r:w=0:100
CPU:Memory | 執行個體規格 | operationcount | threads | throughput | RAL | WAL |
1:2 | 4核 8 GB(獨享型) | 4000000 | 16 | 9960 | 0 | 1592 |
8核 16 GB(獨享型) | 8000000 | 32 | 13064 | 0 | 2423 |
16核 32 GB(獨享型) | 16000000 | 64 | 13743 | 0 | 4615 |
1:4 | 2核 8 GB(獨享型) | 4000000 | 8 | 4287 | 0 | 1860 |
8核 32 GB(獨享型) | 16000000 | 64 | 11611 | 0 | 5441 |
16核 64 GB(獨享型) | 32000000 | 96 | 14391 | 0 | 8746 |
1:8 | 2核 16 GB(獨享型) | 8000000 | 8 | 3854 | 0 | 2067 |
4核 32 GB(獨享型) | 16000000 | 16 | 9711 | 0 | 1638 |
效能對比圖
CPU:Memory=1:2
執行個體規格為4核 8 GB:
執行個體規格為8核 16 GB:
CPU:Memory=1:4
執行個體規格為8核 32 GB:
執行個體規格為16核 64 GB:
CPU:Memory=1:8
執行個體規格為2核 16 GB:
執行個體規格為4核 32 GB:
測試結果分析
說明 雲端硬碟架構具有如下優勢:
所有資源都是獨享的,不存在物理機架構下資源搶佔的情況。
計算和儲存可以分別進行Auto Scaling,無需資料移轉。
具有不同的效能等級,包括ESSD PL1、ESSD PL2和ESSD PL3,隨用隨付的性價比更高。