All Products
Search
Document Center

ApsaraDB for MongoDB:Uji performa replikasi berantai

Last Updated:Jun 18, 2026

Replikasi berantai dapat mengurangi beban pada node primary, tetapi berpotensi meningkatkan lag replikasi. Dokumen ini mengukur dampak performanya terhadap instans set replika ApsaraDB for MongoDB dengan 3, 7, dan 15 node untuk membantu Anda memilih konfigurasi optimal.

Replikasi berantai

Apa itu replikasi berantai?

MongoDB mendukung replikasi berantai. Replikasi berantai terjadi ketika sebuah node secondary dalam set replika menyinkronkan data dari node secondary lainnya. Hal ini dapat mengurangi beban pada node primary, tetapi berpotensi meningkatkan lag replikasi pada topologi jaringan tertentu. Untuk informasi lebih lanjut, lihat Self-Managed Chained Replication.

Replikasi berantai tidak mengharuskan semua node membentuk satu rantai tunggal. Sebuah node secondary dapat memilih sumber sinkronisasi selain node primary berdasarkan metrik seperti round-trip time (RTT). Diagram di bawah ini menunjukkan beberapa topologi set replika lima node yang menggunakan replikasi berantai.

Konfigurasi replikasi berantai

Anda dapat mengaktifkan atau menonaktifkan replikasi berantai dengan menyesuaikan parameter settings.chainingAllowed pada halaman Parameter Settings di Konsol. Untuk informasi lebih lanjut tentang cara menyesuaikan parameter, lihat Setel parameter database.

Jika replikasi berantai menyebabkan lag replikasi, Anda dapat menonaktifkannya untuk mengoptimalkan performa sinkronisasi.

Catatan

Karena alasan keamanan, Anda tidak dapat menjalankan perintah replSetReconfig pada instans ApsaraDB for MongoDB. Anda harus memodifikasi parameter melalui Konsol.

Uji dampak performa instans

Lingkungan pengujian

Buat Instance ECS dan instans set replika ApsaraDB for MongoDB. Untuk informasi lebih lanjut, lihat Buat instans set replika dan Buat Instance ECS menggunakan wizard.

  • Arsitektur instans ApsaraDB for MongoDB: set replika tiga node standar yang terdiri dari satu node primary, satu node secondary, dan satu node hidden. Konfigurasi yang lebih besar mencakup node secondary dan read-only tambahan.

  • Round-trip time (RTT) jaringan antara Instance ECS dan instans ApsaraDB for MongoDB: rata-rata 0,103 ms ketika kedua instans berada di Wilayah dan zona yang sama.

Tabel berikut mencantumkan konfigurasi instans yang digunakan dalam pengujian ini.

Parameter

Instance ECS

Instans ApsaraDB for MongoDB

Wilayah dan zona

China (Beijing) zona H

China (Beijing) zona H

Jenis jaringan

VPC

VPC

Instance family

Compute-optimized c6

Dedicated

Tipe instans

ecs.c6.xlarge (4 vCPU, 8 GiB)

ecs.c7.xlarge (4 vCPU, 8 GiB)

Jenis penyimpanan

ESSD PL0

ESSD PL1

Sistem operasi

Alibaba Cloud Linux 3.2104 LTS 64-bit

4.19.91-26.al7.x86_64

Versi MongoDB

N/A

Versi mayor: 5.0

Versi garis dasar minor: 5.0.30

Tool pengujian

Pengujian ini menggunakan tool benchmark open-source YCSB 0.17.0.

Catatan

Yahoo! Cloud Serving Benchmark (YCSB) adalah tool berbasis Java untuk benchmark performa database. Untuk instruksi instalasi dan penggunaan, lihat repositori resmi YCSB.

Prosedur

  1. Tambahkan alamat IP ke daftar putih. Masuk ke Konsol ECS, temukan Alamat IP pribadi utama Instance ECS Anda di halaman detail instans, lalu tambahkan ke daftar putih instans ApsaraDB for MongoDB Anda.

  2. Hubungkan ke Instance ECS.

  3. Gunakan YCSB untuk memuat data 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 total record yang dimuat ke instans ApsaraDB for MongoDB.

    • mongodb.url: string koneksi instans ApsaraDB for MongoDB. Dalam pengujian ini, akun database adalah test dan database-nya adalah admin. Anda dapat menemukan string koneksi di halaman Database Connection pada bagian Internal Connections - VPC di Konsol ApsaraDB for MongoDB.

    • threads: jumlah thread client konkuren.

  4. Lihat hasil pengujian YCSB dan data pemantauan instans. Di halaman Monitoring Information, buka tab Node Monitoring. Pilih rentang waktu pengujian dan lihat metrik utilisasi CPU, QPS, dan waktu respons rata-rata untuk node primary. Untuk informasi lebih lanjut, lihat Node Monitoring (sebelumnya pemantauan dasar).

Hasil pengujian

Parameter

Write Concern: tingkat acknowledgment yang diminta dari MongoDB untuk operasi tulis. Pengujian ini menggunakan nilai-nilai berikut:

  • {w:"majority"}: pengaturan default. Operasi tulis diakui setelah direplikasi ke mayoritas node voting dalam set replika.

  • {w: 1}: operasi tulis diakui setelah dikonfirmasi oleh node primary.

Hasil pengujian terperinci

Instans 3-node

Topologi set replika: satu node primary, satu node secondary, dan satu node hidden.

Write concern: {w:"majority"}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (ops)

5277

5241

Utilisasi CPU

65%

65%

QPS (jumlah)

image.png

image.png

Waktu respons rata-rata (μs)

image.png

image.png

Write concern: {w:1}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (ops)

15075

14785

Utilisasi CPU

93%

93%

QPS (jumlah)

image.png

image.png

Waktu respons rata-rata (μs)

image.png

image.png

Instans 7-node

Topologi set replika: satu node primary, lima node secondary, dan satu node hidden.

Write concern: {w:"majority"}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (ops)

3005

4312

Utilisasi CPU

56%

85%

QPS (jumlah)

image.png

image.png

Waktu respons rata-rata (μs)

image.png

image.png

Write concern: {w:1}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (ops)

14414

11492

Utilisasi CPU

91%

93%

QPS (jumlah)

image.png

image.png

Waktu respons rata-rata (μs)

image.png

image.png

Instans 15-node

Topologi set replika: satu node primary, lima node secondary, satu node hidden, dan delapan node read-only.

Konfigurasi ini memiliki 7 node voting dan 8 node non-voting (node read-only tidak memberikan suara).

Write concern: {w:"majority"}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (ops)

2932

3123

Utilisasi CPU

58%

91%

QPS (jumlah)

image.png

image.png

Waktu respons rata-rata (μs)

image.png

image.png

Write concern: {w:1}

Item

Replikasi berantai diaktifkan

Replikasi berantai dinonaktifkan

Throughput (ops)

14093

7500

Utilisasi CPU

90%

94%

QPS (jumlah)

image.png

image.png

Waktu respons rata-rata (μs)

image.png

image.png

Perbandingan dan ringkasan performa

  • Untuk jumlah node tetap, pengaturan write concern menentukan apakah menonaktifkan replikasi berantai menurunkan performa tulis.

    Write concern: {w:1}

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

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

    • Untuk instans 15-node, performa turun sebesar 46,8%, dan utilisasi CPU node primary meningkat secara signifikan.

    Write concern: {w:"majority"}

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

    • Untuk instans 7-node dan 15-node, menonaktifkan replikasi berantai dapat meningkatkan performa sekitar 6,5% hingga 43,5%.

      Alasan peningkatan performa: menonaktifkan replikasi berantai memperpendek jalur sinkronisasi untuk semua node dalam set replika, sehingga kondisi mayoritas lebih mudah terpenuhi dan latensi setiap operasi tulis berkurang.

      Dampak node non-voting: dengan jumlah tetap 7 node voting, keuntungan performa dari menonaktifkan replikasi berantai berkurang seiring penambahan node non-voting karena beban replikasi pada node primary meningkat.

  • Dengan pengaturan chainingAllowed dan writeConcern yang sama, performa tulis menurun seiring bertambahnya jumlah node. Penurunan tersebut lebih signifikan ketika replikasi berantai dinonaktifkan.

    • Dengan konfigurasi default (chainingAllowed:true dan writeConcern:{w:"majority"}), penurunan performa tidak signifikan saat diperluas dari 7 ke 15 node karena set replika hanya dapat memiliki maksimal 7 anggota voting, sehingga kondisi mayoritas tidak berubah.

    • Performa dengan writeConcern:{w:1} jauh lebih baik daripada dengan writeConcern:{w:"majority"}, terlepas dari apakah replikasi berantai diaktifkan atau tidak. Hal ini sesuai dengan cara kerja write concern.

    • Dengan pengaturan write concern tetap, menonaktifkan replikasi berantai meningkatkan utilisasi CPU node primary secara lebih signifikan seiring bertambahnya jumlah node dibandingkan saat diaktifkan.

Praktik terbaik

  • Untuk penerapan dengan jumlah node kecil, mengaktifkan atau menonaktifkan replikasi berantai tidak berdampak signifikan terhadap performa instans atau utilisasi CPU.

  • Untuk penerapan dengan jumlah node besar:

    • Jika writeConcern adalah {w:1}, kami merekomendasikan agar Anda mengaktifkan replikasi berantai.

    • Jika writeConcern adalah {w:"majority"}, Anda harus menyeimbangkan beban node primary (seperti utilisasi CPU) dengan performa instans. Menonaktifkan replikasi berantai meningkatkan performa tulis tetapi secara signifikan meningkatkan beban pada node primary.