Hasil benchmark YCSB untuk ApsaraDB for MongoDB pada arsitektur server fisik dan disk cloud, mencakup berbagai spesifikasi instans serta rasio baca/tulis.
Lingkungan pengujian
|
Parameter
|
ECS untuk uji stres
|
ApsaraDB for MongoDB (Server Fisik)
|
ApsaraDB for MongoDB (Cloud Disk)
|
|
Wilayah dan zona
|
China (Hangzhou) Zona H
|
China (Hangzhou) Zona H
|
China (Hangzhou) Zona H
|
|
Jenis jaringan
|
VPC
|
VPC
|
VPC
|
|
Family instans
|
c6e (Dioptimalkan komputasi, kinerja ditingkatkan)
|
Tujuan Umum dan Khusus
|
Spesifikasi khusus
|
|
Jenis instans
|
ecs.c6e.2xlarge (8 core, 16 GB)
|
Hasil pengujian
|
Hasil pengujian
|
|
Jenis penyimpanan
|
Disk cloud ESSD PL1
|
Local SSD
|
Disk cloud ESSD PL1
|
|
Ruang penyimpanan
|
-
|
500 GB
|
500 GB
|
|
Topologi
|
-
|
Kumpulan replika tiga node standar (satu primary, satu secondary, dan satu node tersembunyi)
|
Kumpulan replika tiga node standar (satu primary, satu secondary, dan satu node tersembunyi)
|
|
Versi image
|
Alibaba Cloud Linux 3.2104 LTS 64-bit
|
3.10.0-327.ali2017.alios7.x86_64
|
4.19.81-17.2.al7.x86_64
|
|
Versi kernel instance
|
-
|
MongoDB 4.2 (versi minor garis dasar 4.2.13)
|
MongoDB 4.4 (versi minor garis dasar 4.4.1)
|
|
Konfigurasi konsistensi
|
-
|
Default read/write concern
|
Default read/write concern
|
Catatan
Instans ECS dan ApsaraDB for MongoDB berada di wilayah dan zona yang sama. Round-trip time (RTT): sekitar 0,104 ms.
Tool pengujian
Pengujian ini menggunakan YCSB 0.17.0 untuk benchmarking.
Catatan
YCSB adalah alat benchmarking berbasis Java untuk berbagai database.
Prosedur pengujian
-
Tambahkan primary private IP address instans ECS ke daftar putih ApsaraDB for MongoDB. Ubah daftar putih.
Catatan
Anda dapat login ke Konsol ECS dan melihat primary private IP address instans ECS di bagian Network Information pada halaman Instance Details.
-
Sambungkan ke instans ECS. Sambungkan ke instans ECS.
-
Muat data uji menggunakan alat 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
Modifikasi parameter berikut:
-
recordcount=1000000: Jumlah total catatan yang dimuat ke instans ApsaraDB for MongoDB.
-
mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": Titik akhir instans ApsaraDB for MongoDB. Pada contoh ini, akun database adalah test dan database-nya adalah admin.
Catatan
Anda dapat masuk ke konsol ApsaraDB for MongoDB dan melihat titik akhir di bagian Private Connection - VPC pada halaman Database Connection.
-
threads 8: Jumlah thread konkuren untuk klien.
-
Jalankan perintah berikut untuk melakukan uji stres.
./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
Modifikasi parameter berikut:
recordcount=1000000: Jumlah total catatan data yang dimuat ke instans ApsaraDB for MongoDB.
-
operationcount=5000000: Jumlah operasi baca dan tulis yang akan dilakukan.
-
insertproportion=0: Proporsi operasi insert.
-
readproportion=50: Proporsi operasi baca.
-
updateproportion=50: Proporsi operasi update.
mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": Titik akhir instans ApsaraDB for MongoDB. Pada contoh ini, akun database adalah test dan database-nya adalah admin.
Catatan Anda dapat login ke Konsol ApsaraDB for MongoDB lalu melihat titik akhir instans di bagian Internal Connections - VPC pada halaman Database Connections.
threads 8: Jumlah thread konkuren pada klien.
Hasil pengujian
Skenario
-
r:w=100:0: 100% baca, 0% tulis.
-
r:w=95:5: 95% baca, 5% tulis.
-
r:w=50:50: 50% baca, 50% tulis.
-
r:w=5:95: 5% baca, 95% tulis.
-
r:w=0:100: 0% baca, 100% tulis.
Parameter
-
recordcount: Total catatan yang dimuat ke instans ApsaraDB for MongoDB.
-
operationcount: Total operasi baca dan tulis.
-
threads: Thread klien konkuren.
-
throughput: Operasi per detik (OPS).
-
RAL: Latensi baca rata-rata dalam mikrodetik (µs).
-
WAL: Latensi tulis rata-rata dalam mikrodetik (µs).
Catatan
Jika RAL atau WAL bernilai 0, berarti tidak ada operasi baca atau tulis yang dilakukan.
Tabel dan grafik berikut membandingkan arsitektur server fisik dan disk cloud pada berbagai rasio baca/tulis.
Instans server fisik (MongoDB 4.2)
Muat data uji
|
CPU/Memori
|
Spesifikasi instans
|
Recordcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
1 core, 2 GB (tujuan umum)
|
1000000
|
4
|
3589
|
0
|
1110
|
|
2 core, 4 GB (tujuan umum)
|
2000000
|
8
|
7629
|
0
|
521
|
|
4 core, 8 GB (tujuan umum)
|
4000000
|
16
|
24300
|
0
|
654
|
|
8 core, 16 GB (tujuan umum)
|
8000000
|
32
|
26745
|
0
|
1191
|
|
1:4
|
8 core, 32 GB (tujuan umum)
|
16000000
|
32
|
29090
|
0
|
1095
|
|
16 core, 64 GB (tujuan umum)
|
32000000
|
128
|
41098
|
0
|
3033
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
6553
|
0
|
1217
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
14526
|
0
|
1097
|
|
8 core, 64 GB (spesifikasi khusus)
|
32000000
|
32
|
35437
|
0
|
899
|
|
16 core, 128 GB (spesifikasi khusus)
|
64000000
|
160
|
60078
|
0
|
2658
|
r:w=100:0
|
CPU:memori
|
Spesifikasi instans
|
Jumlah operasi
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
1 core, 2 GB (tujuan umum)
|
1.000.000
|
4
|
6.387
|
623
|
0
|
|
2 core, 4 GB (tujuan umum)
|
2.000.000
|
8
|
12.893
|
616
|
0
|
|
4 core, 8 GB (tujuan umum)
|
4.000.000
|
16
|
37.016
|
427
|
0
|
|
8 core, 16 GB (tujuan umum)
|
8.000.000
|
32
|
48.014
|
658
|
0
|
|
1:4
|
8 core, 32 GB (tujuan umum)
|
16.000.000
|
32
|
44.251
|
1.589
|
0
|
|
16 core, 64 GB (tujuan umum)
|
32.000.000
|
128
|
57.252
|
2.226
|
0
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8.000.000
|
8
|
12.436
|
641
|
0
|
|
4 core, 32 GB (spesifikasi khusus)
|
16.000.000
|
16
|
20.551
|
773
|
0
|
|
8 core, 64 GB (spesifikasi khusus)
|
32.000.000
|
32
|
50.246
|
632
|
0
|
|
16 core, 128 GB (spesifikasi khusus)
|
64.000.000
|
160
|
66.876
|
2.385
|
0
|
r:w=95:5
|
CPU:Memori
|
Jenis instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
1 core, 2 GB (tujuan umum)
|
1000000
|
4
|
4556
|
864
|
1079
|
|
2 core, 4 GB (tujuan umum)
|
2000000
|
8
|
10391
|
757
|
914
|
|
4 core, 8 GB (tujuan umum)
|
4000000
|
16
|
34411
|
453
|
561
|
|
8 core, 16 GB (tujuan umum)
|
8000000
|
32
|
41095
|
763
|
925
|
|
1:4
|
8 core, 32 GB (tujuan umum)
|
16000000
|
32
|
39920
|
785
|
926
|
|
16 core, 64 GB (tujuan umum)
|
32000000
|
128
|
55148
|
2305
|
2381
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
8869
|
871
|
1394
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
18206
|
856
|
1192
|
|
8 core, 64 GB (spesifikasi khusus)
|
32000000
|
32
|
47111
|
664
|
861
|
|
16 core, 128 GB (spesifikasi khusus)
|
64000000
|
160
|
68801
|
2312
|
2449
|
r:w=50:50
|
CPU:Memori
|
Jenis instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
1 core, 2 GB (tujuan umum)
|
1000000
|
4
|
3062
|
1207
|
1399
|
|
2 core, 4 GB (tujuan umum)
|
2000000
|
8
|
6610
|
1128
|
1318
|
|
4 core, 8 GB (tujuan umum)
|
4000000
|
16
|
19743
|
743
|
864
|
|
8 core, 16 GB (tujuan umum)
|
8000000
|
32
|
22750
|
987
|
1809
|
|
1:4
|
8 core, 32 GB (tujuan umum)
|
16000000
|
32
|
21763
|
1010
|
1907
|
|
16 core, 64 GB (tujuan umum)
|
32000000
|
128
|
43498
|
2162
|
3696
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
5680
|
1345
|
1930
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
10470
|
1064
|
1971
|
|
8 core, 64 GB (spesifikasi khusus)
|
32000000
|
32
|
20427
|
790
|
2329
|
|
16 core, 128 GB (spesifikasi khusus)
|
64000000
|
160
|
29445
|
2944
|
7891
|
r:w=5:95
|
CPU:Memori
|
Spesifikasi instans
|
Jumlah operasi
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
1 core, 2 GB (tujuan umum)
|
1000000
|
4
|
2431
|
1511
|
1649
|
|
2 core, 4 GB (tujuan umum)
|
2000000
|
8
|
5336
|
1406
|
1608
|
|
4 core, 8 GB (tujuan umum)
|
4000000
|
16
|
14496
|
858
|
1110
|
|
8 core, 16 GB (tujuan umum)
|
8000000
|
32
|
14573
|
958
|
2253
|
|
1:4
|
8 core, 32 GB (tujuan umum)
|
16000000
|
32
|
13812
|
995
|
2377
|
|
16 core, 64 GB (tujuan umum)
|
32000000
|
128
|
20663
|
2831
|
6348
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
4079
|
3201
|
8066
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
7154
|
1080
|
2288
|
|
8 core, 64 GB (spesifikasi khusus)
|
32000000
|
32
|
12585
|
783
|
2626
|
|
16 core, 128 GB (spesifikasi khusus)
|
64000000
|
160
|
17083
|
4241
|
9615
|
Beban kerja 100% tulis
|
CPU:Memori
|
Spesifikasi Instance
|
Jumlah operasi
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
1 core, 2 GB (tujuan umum)
|
1.000.000
|
4
|
2.429
|
0
|
1.642
|
|
2 core, 4 GB (tujuan umum)
|
2.000.000
|
8
|
5.238
|
0
|
1.643
|
|
4 core, 8 GB (tujuan umum)
|
4.000.000
|
16
|
13.794
|
0
|
1.154
|
|
8 core, 16 GB (tujuan umum)
|
8.000.000
|
32
|
14.566
|
0
|
2.189
|
|
1:4
|
8 core, 32 GB (tujuan umum)
|
16.000.000
|
32
|
13.485
|
0
|
2.361
|
|
16 core, 64 GB (tujuan umum)
|
32.000.000
|
128
|
19.758
|
0
|
6.461
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8.000.000
|
8
|
3.939
|
0
|
8.097
|
|
4 core, 32 GB (spesifikasi khusus)
|
16.000.000
|
16
|
6.940
|
0
|
2.298
|
|
8 core, 64 GB (spesifikasi khusus)
|
32.000.000
|
32
|
12.567
|
0
|
2.539
|
|
16 core, 128 GB (spesifikasi khusus)
|
64.000.000
|
160
|
16.325
|
0
|
9.770
|
Instans arsitektur disk cloud (MongoDB 4.4)
Kinerja pemuatan data
|
CPU:memori
|
Spesifikasi instans
|
Recordcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
4 core, 8 GB (spesifikasi khusus)
|
4000000
|
16
|
18235
|
0
|
871
|
|
8 core, 16 GB (spesifikasi khusus)
|
8000000
|
32
|
35643
|
0
|
891
|
|
16 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
65345
|
0
|
971
|
|
1:4
|
2 core, 8 GB (spesifikasi khusus)
|
4000000
|
8
|
6613
|
0
|
1202
|
|
8 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
45952
|
0
|
1385
|
|
16 core, 64 GB (spesifikasi khusus)
|
32000000
|
96
|
61973
|
0
|
1539
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
6224
|
0
|
1280
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
18603
|
0
|
857
|
r:w=100:0
|
CPU:memori
|
Spesifikasi instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
4 core, 8 GB (spesifikasi khusus)
|
4000000
|
16
|
24945
|
634
|
0
|
|
8 core, 16 GB (spesifikasi khusus)
|
8000000
|
32
|
33270
|
938
|
0
|
|
16 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
55703
|
1136
|
0
|
|
1:4
|
2 core, 8 GB (spesifikasi khusus)
|
4000000
|
8
|
10989
|
723
|
0
|
|
8 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
36039
|
1740
|
0
|
|
16 core, 64 GB (spesifikasi khusus)
|
32000000
|
96
|
59960
|
1585
|
0
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
11298
|
703
|
0
|
|
4 core, 32 GB (dedicated)
|
16000000
|
16
|
24306
|
653
|
0
|
r:w=95:5
|
CPU:memori
|
Spesifikasi instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
4 core, 8 GB (spesifikasi khusus)
|
4000000
|
16
|
22471
|
797
|
1161
|
|
8 core, 16 GB (spesifikasi khusus)
|
8000000
|
32
|
29543
|
1064
|
1199
|
|
16 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
53466
|
1178
|
1300
|
|
1:4
|
2 core, 8 GB (spesifikasi khusus)
|
4000000
|
8
|
8986
|
854
|
1480
|
|
8 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
34128
|
1829
|
1970
|
|
16 core, 64 GB (spesifikasi khusus)
|
32000000
|
96
|
78363
|
1196
|
1420
|
|
1:8
|
2 core, 16 GB (dedicated)
|
8000000
|
8
|
8806
|
867
|
1619
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
20132
|
770
|
1181
|
r:w=50:50
|
CPU:memori
|
Spesifikasi instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
4 core, 8 GB (spesifikasi khusus)
|
4000000
|
16
|
14127
|
1009
|
1238
|
|
8 core, 16 GB (spesifikasi khusus)
|
8000000
|
32
|
19887
|
1496
|
1670
|
|
16 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
23120
|
2680
|
2819
|
|
1:4
|
2 core, 8 GB (spesifikasi khusus)
|
4000000
|
8
|
5132
|
1370
|
1735
|
|
8 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
18929
|
2930
|
3615
|
|
16 core, 64 GB (spesifikasi khusus)
|
32000000
|
96
|
25612
|
3675
|
4363
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
4841
|
1438
|
1855
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
13051
|
1080
|
1356
|
r:w=5:95
|
CPU:memori
|
Spesifikasi instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
4 core, 8 GB (spesifikasi khusus)
|
4000000
|
16
|
10266
|
1141
|
1570
|
|
8 core, 16 GB (spesifikasi khusus)
|
8000000
|
32
|
13556
|
2141
|
2351
|
|
16 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
14447
|
4295
|
4412
|
|
1:4
|
2 core, 8 GB (spesifikasi khusus)
|
4000000
|
8
|
4226
|
1591
|
1902
|
|
8 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
12055
|
5109
|
5210
|
|
16 core, 64 GB (spesifikasi khusus)
|
32000000
|
96
|
15216
|
5877
|
8503
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
3874
|
1792
|
2072
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
10083
|
1106
|
1605
|
r:w=0:100
|
CPU:memori
|
Spesifikasi instans
|
Operationcount
|
Threads
|
Throughput
|
RAL
|
WAL
|
|
1:2
|
4 core, 8 GB (spesifikasi khusus)
|
4000000
|
16
|
9960
|
0
|
1592
|
|
8 core, 16 GB (spesifikasi khusus)
|
8000000
|
32
|
13064
|
0
|
2423
|
|
16 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
13743
|
0
|
4615
|
|
1:4
|
2 core, 8 GB (spesifikasi khusus)
|
4000000
|
8
|
4287
|
0
|
1860
|
|
8 core, 32 GB (spesifikasi khusus)
|
16000000
|
64
|
11611
|
0
|
5441
|
|
16 core, 64 GB (spesifikasi khusus)
|
32000000
|
96
|
14391
|
0
|
8746
|
|
1:8
|
2 core, 16 GB (spesifikasi khusus)
|
8000000
|
8
|
3854
|
0
|
2067
|
|
4 core, 32 GB (spesifikasi khusus)
|
16000000
|
16
|
9711
|
0
|
1638
|
Perbandingan kinerja
CPU:memori=1:2
-
Jenis instans: 4 core, memori 8 GB
-
Jenis instans: 8 core, memori 16 GB
CPU:memori=1:4
-
Jenis instans: 8 core, memori 32 GB
-
Jenis instans: 16 core, memori 64 GB
CPU:memori=1:8
-
Jenis instans: 2 core, memori 16 GB
-
Jenis instans: 4 core, memori 32 GB
Analisis hasil pengujian
-
Untuk CPU:Memory=1:2, server fisik mengungguli disk cloud sebesar 7%–50%, terutama pada konfigurasi 4 core, 8 GB.
-
Untuk CPU:Memory=1:4, selisihnya menyempit menjadi sekitar 10%. Server fisik cocok untuk beban kerja yang banyak menulis; disk cloud cocok untuk beban kerja yang banyak membaca.
-
Untuk CPU:Memory=1:8:
-
Server fisik dan disk cloud memberikan kinerja yang hampir identik.
-
Saat kapasitas memori meningkat, disk cloud secara signifikan mengungguli server fisik, terutama pada konfigurasi 4 core, 32 GB.
Catatan
Arsitektur disk cloud menawarkan keunggulan berikut:
-
Sumber daya khusus menghilangkan persaingan dari server fisik bersama.
-
Skalabilitas komputasi dan penyimpanan independen tanpa migrasi data.
-
Mendukung tingkat kinerja ESSD PL1, PL2, dan PL3 dengan penagihan pay-as-you-go yang hemat biaya.