全部产品
Search
文档中心

ApsaraDB for MongoDB:Pengujian dampak replikasi berantai pada kinerja instance

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menguji dan menganalisis dampak replikasi berantai terhadap kinerja instance dengan menghubungkan Elastic Compute Service (ECS) ke instance set replika ApsaraDB for MongoDB.

Replikasi berantai

Konsep

ApsaraDB for MongoDB mendukung replikasi berantai. Ketika node sekunder dalam instance set replika menyinkronkan data dari node sekunder lainnya, terjadinya replikasi berantai dapat mengurangi beban pada node utama dalam instance. Namun, latensi primer/sekunder yang lebih lama dapat terjadi di berbagai topologi jaringan. Untuk informasi lebih lanjut, lihat Self-Managed Chained Replication.

Dalam replikasi berantai, semua node tidak perlu membentuk rantai tunggal. Sebaliknya, node sekunder dapat memilih node lain selain node utama sebagai sumber sinkronisasi berdasarkan informasi seperti waktu bolak-balik (RTT). Gambar berikut menunjukkan beberapa topologi set replika lima-node yang termasuk dalam replikasi berantai.

Konfigurasikan replikasi berantai

Anda dapat menyesuaikan parameter settings.chainingAllowed di halaman Parameters di konsol ApsaraDB for MongoDB untuk mengaktifkan atau menonaktifkan replikasi berantai. Untuk informasi lebih lanjut tentang cara memodifikasi parameter yang diperlukan, lihat Instance Standalone dan Set Replika.

Dalam beberapa kasus, replikasi berantai dapat menyebabkan latensi sinkronisasi antara node utama dan sekunder. Oleh karena itu, Anda dapat menonaktifkan replikasi berantai untuk mengoptimalkan kinerja sinkronisasi.

Catatan

Untuk alasan keamanan, Anda tidak memiliki izin untuk menjalankan perintah replSetReconfig pada instance Anda. Anda harus memodifikasi parameter yang diperlukan di konsol ApsaraDB for MongoDB.

Pengujian dampak kinerja instance

Lingkungan pengujian

Buat instance ECS dan instance ApsaraDB for MongoDB. Untuk informasi lebih lanjut, lihat Buat Instance Set Replika dan Buat dan Kelola Instance ECS di Konsol (Versi Ekspres).

  • Arsitektur instance ApsaraDB for MongoDB: Topologi set replika standar yang terdiri dari node utama, node sekunder, dan node tersembunyi. Anda dapat menambahkan node sekunder dan baca-saja untuk meningkatkan jumlah node dalam instance.

  • RTT antara instance ECS dan instance ApsaraDB for MongoDB: Rata-rata RTT adalah 0,103 ms ketika kedua instance berada di wilayah dan zona yang sama.

Tabel berikut menjelaskan konfigurasi instance ECS dan instance ApsaraDB for MongoDB yang digunakan dalam pengujian.

Item konfigurasi

ECS Instance

Instance ApsaraDB for MongoDB yang menggunakan disk cloud

Wilayah dan zona

Beijing Zone H

Beijing Zone H

Jenis jaringan

Virtual Private Cloud (VPC)

VPC

Kategori instance

Compute-optimized c6

spesifikasi khusus

Tipe instance

ecs.c6.xlarge(4c8g)

ecs.c7.xlarge(4c8g)

Jenis penyimpanan

ESSD PL0

ESSD PL1

Gambar atau versi mesin

Alibaba Cloud Linux 3.2104 LTS 64-bit

4.19.91-26.al7.x86_64

Versi kernel

N/A

Versi utama: MongoDB 5.0

Versi minor: MongoDB 5.0.30

Alat pengujian

Alat Yahoo Cloud Serving Benchmark (YCSB) open-source versi 0.17.0 digunakan dalam pengujian.

Catatan

YCSB adalah alat Java yang dapat digunakan untuk mengukur kinerja berbagai jenis database. Untuk informasi lebih lanjut tentang cara menginstal dan menggunakan YCSB, lihat YCSB.

Prosedur

  1. Tambahkan daftar putih ke instance ApsaraDB for MongoDB. Masuk ke Konsol ECS. Kemudian, lihat alamat IP privat utama instance ECS di bagian informasi jaringan halaman detail instance dan tambahkan alamat IP tersebut ke daftar putih instance ApsaraDB for MongoDB.

  2. Hubungkan ke instance ECS.

  3. Gunakan alat YCSB untuk memuat data untuk pengujian.

    ./bin/ycsb.sh load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=5000000 -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -p table=test -threads 8

    Parameter:

    • recordcount: Jumlah data yang dimuat ke instance ApsaraDB for MongoDB.

    • mongodb.url: Titik akhir instance ApsaraDB for MongoDB. Dalam pengujian, akun database adalah test dan database adalah admin. Anda dapat memperoleh titik akhir di bagian Internal Connections - VPC halaman Database Connections di Konsol ApsaraDB for MongoDB.

    • threads: Jumlah thread konkuren di klien.

  4. Lihat hasil pengujian dan informasi pemantauan instance ApsaraDB for MongoDB yang diuji. Di tab Pemantauan Node halaman Monitoring Data, Anda dapat memilih rentang waktu pengujian untuk melihat pemanfaatan CPU, QPS, dan waktu respons rata-rata (RT) untuk node utama. Untuk informasi lebih lanjut, lihat Pemantauan Node (Sebelumnya Pemantauan Dasar).

Hasil pengujian

Parameter

Write Concern: Tingkat jaminan persistensi data, yang menentukan kondisi apa yang harus dipenuhi sebelum operasi tulis dianggap berhasil. Nilai valid:

  • {w:"majority"}: Nilai default, yang menunjukkan bahwa operasi tulis tidak dianggap berhasil sampai operasi direplikasi ke sebagian besar node dalam instance set replika.

  • {w: 1}: Menunjukkan bahwa operasi tulis hanya dianggap berhasil oleh node utama.

Detail hasil pengujian

Topologi 3-node

Topologi set replika terdiri dari node utama, node sekunder, dan node tersembunyi.

writeConcern = {w:"majority"}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (OPS)

5277

5241

Pemanfaatan CPU

65%

65%

QPS

image.png

image.png

RT rata-rata (ms)

image.png

image.png

writeConcern = {w:1}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (OPS)

15075

14785

Pemanfaatan CPU

93%

93%

QPS

image.png

image.png

RT rata-rata (ms)

image.png

image.png

Topologi 7-node

Topologi set replika terdiri dari node utama, lima node sekunder, dan node tersembunyi.

writeConcern = {w:"majority"}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (OPS)

3005

4312

Pemanfaatan CPU

56%

85%

QPS

image.png

image.png

RT rata-rata (ms)

image.png

image.png

writeConcern = {w:1}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (OPS)

14414

11492

Pemanfaatan CPU

91%

93%

QPS

image.png

image.png

RT rata-rata (ms)

image.png

image.png

Topologi 15-node

Topologi set replika terdiri dari node utama, lima node sekunder, node tersembunyi, dan delapan node baca-saja.

Tujuh node dapat berpartisipasi dalam pemilihan node utama dan delapan node tidak berpartisipasi. Delapan node tersebut adalah node baca-saja.

writeConcern = {w:"majority"}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (OPS)

2932

3123

Pemanfaatan CPU

58%

91%

QPS

image.png

image.png

RT rata-rata (ms)

image.png

image.png

writeConcern = {w:1}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (OPS)

14093

7500

Pemanfaatan CPU

90%

94%

QPS

image.png

image.png

RT rata-rata (ms)

image.png

image.png

Perbandingan performa dan ringkasan

  • Pengaturan writeConcern menentukan apakah performa penulisan akan menurun jika replikasi berantai dinonaktifkan dan jumlah node tetap.

    writeConcern = {w:1}

    • Untuk instance 3-node, penurunan performa akibat menonaktifkan replikasi berantai dapat diabaikan.

    • Untuk instance 7-node, penurunan performa akibat menonaktifkan replikasi berantai sekitar 20,3%.

    • Untuk instance 15-node, penurunan performa akibat menonaktifkan replikasi berantai mencapai 46,8%. Selain itu, pemanfaatan CPU pada node utama meningkat secara signifikan setelah replikasi berantai dinonaktifkan.

    writeConcern = {w:"majority"}

    • Untuk instance 3-node, penurunan performa akibat menonaktifkan replikasi berantai dapat diabaikan.

    • Untuk instance 7-node dan 15-node, performa meningkat sekitar 6,5% hingga 43,5% setelah replikasi berantai dinonaktifkan.

      Penyebab peningkatan performa: Setelah replikasi berantai dinonaktifkan, tautan sinkronisasi keseluruhan dari semua node dipersingkat dalam instance set replika. Dengan cara ini, kondisi mayoritas lebih mudah tercapai dan latensi penulisan tunggal berkurang.

      Dampak dari jumlah node non-voting: Seiring bertambahnya jumlah node non-voting (terbatas hingga 7 node), peningkatan performa akibat menonaktifkan replikasi berantai secara bertahap tidak sesuai harapan, yang disebabkan oleh beban sinkronisasi utama/sekunder yang tinggi pada node utama.

  • Performa penulisan menurun seiring bertambahnya jumlah node dengan pengaturan chainingAllowed dan writeConcern yang sama. Performa menunjukkan tren penurunan yang lebih signifikan setelah replikasi berantai diterapkan.

    • Secara default, chainingAllowed diatur ke true dan writeConcern diatur ke {w:"majority"}. Jika Anda menggunakan pengaturan default, performa penulisan tidak mengalami penurunan signifikan ketika Anda mengubah jumlah node dari 7 menjadi 15. Hal ini disebabkan oleh fakta bahwa instance set replika dapat berisi hingga tujuh node voting, dan kondisi mayoritas tetap tidak berubah.

    • Tidak peduli apakah replikasi berantai dinonaktifkan atau tidak, performa dengan writeConcern diatur ke {w:1} jauh lebih baik daripada dengan writeConcern diatur ke {w:"majority"} dan sesuai dengan desain writeConcern.

    • Ketika pengaturan writeConcern tetap, seiring bertambahnya jumlah node, pemanfaatan CPU pada node utama mengalami peningkatan yang lebih signifikan selama menonaktifkan replikasi berantai dibandingkan saat mengaktifkannya.

Praktik terbaik

  • Ketika jumlah node sedikit, Anda dapat mengaktifkan atau menonaktifkan replikasi berantai berdasarkan kebutuhan bisnis Anda. Kinerja keseluruhan instance tidak terpengaruh, dan pemanfaatan CPU tidak berubah secara signifikan.

  • Ketika jumlah node sangat banyak:

    • Jika writeConcern diatur ke {w:1}, kami sarankan Anda mengaktifkan replikasi berantai.

    • Jika writeConcern diatur ke {w: "majority" }, seimbangkan beban node utama (seperti pemanfaatan CPU) dan kinerja instance. Jika replikasi berantai dinonaktifkan, kinerja penulisan akan meningkat. Namun, beban pada node utama meningkat secara signifikan.