All Products
Search
Document Center

ApsaraDB for MongoDB:Dampak performa dari mengaktifkan audit log

Last Updated:Jun 23, 2026

ApsaraDB for MongoDB mendukung audit log. Pengujian benchmark mengukur overhead performa akibat mengaktifkan fitur ini, membantu Anda menilai apakah perlu mengaktifkan audit log untuk instans Anda.

Kesimpulan pengujian

Mengaktifkan audit log memengaruhi performa instans ApsaraDB for MongoDB sebagai berikut:

  • Workload hanya tulis (operasi insert atau update murni): Penggunaan CPU meningkat sekitar 3 poin persentase (kenaikan relatif 15% hingga 20%), tanpa perubahan signifikan pada waktu respons atau throughput.

  • Workload baca/tulis campuran: Penggunaan CPU tidak menunjukkan perubahan signifikan, tetapi performa baca/tulis keseluruhan menurun sekitar 15% hingga 20%. Secara spesifik, waktu respons rata-rata untuk operasi tulis meningkat 500–700 μs dan waktu respons rata-rata untuk operasi baca meningkat 150–300 μs, sementara throughput turun 15% hingga 20%.

Lingkungan pengujian

Parameter

Uji Stres Instance ECS

Instans MongoDB

Wilayah dan zona

China (Hangzhou) Zona J

China (Hangzhou) Zona J

Jenis jaringan

VPC

VPC

Family tipe instans

Compute-optimized c8i

dedicated

Tipe instans

ecs.c8i.4xlarge (16 vCPU, 32 GB)

mdb.shard.8x.16xlarge.d (64 vCPU, 512 GB)

Jenis penyimpanan

Disk cloud ESSD PL0 (disk sistem), tanpa data disk

Disk cloud ESSD PL1

Bandwidth

100 Mbps

350 Mbps

Ruang penyimpanan

40 GiB (disk sistem)

470 GB

Topologi

-

Instans replica set Standar (3 node: 1 node primary, 1 node secondary, dan 1 node hidden)

Versi image

CentOS 7.8 64-bit

-

Versi kernel instans

-

MongoDB 6.0 (versi kernel minor 7.0.23)

Read/Write Concern

-

Default read/write concern

Catatan

Instans ECS pengujian stres dan instans ApsaraDB for MongoDB berada di wilayah dan zona yang sama. Round-Trip Time (RTT) di antara keduanya sekitar 0,104 ms.

Tool pengujian

Pengujian benchmark menggunakan tool open-source YCSB (Yahoo! Cloud Serving Benchmark) versi 0.17.0.

Catatan

YCSB adalah tool benchmark berbasis Java yang mendukung berbagai database. Untuk instruksi instalasi dan penggunaan, lihat YCSB.

Prosedur pengujian

  1. Tambahkan primary private IP address instans ECS ke daftar putih IP instans ApsaraDB for MongoDB. Untuk instruksi, lihat Modify IP whitelist.

    Catatan

    Login ke ECS console dan temukan primary private IP address instans ECS di bagian Network Information pada halaman Instance Details.

  2. Hubungkan ke instans ECS secara remote. Untuk instruksi, lihat Connect to an ECS instance.

  3. Gunakan tool YCSB untuk memuat data uji.

    ./bin/ycsb load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=10000000 -p mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx" -threads 300

    Modifikasi parameter berikut sesuai kebutuhan:

    • recordcount=10000000: Jumlah total catatan yang dimuat ke instans MongoDB. Pengujian ini memuat 10 juta catatan.

    • mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx": String koneksi instans MongoDB. Pengujian ini terhubung ke database admin menggunakan akun root.

      Catatan

      Temukan string koneksi di bagian Database Connections pada halaman Internal Connections di ApsaraDB for MongoDB console.

    • threads=300: Jumlah thread konkuren untuk client.

  4. Jalankan perintah berikut untuk melakukan pengujian benchmark. Contoh berikut menunjukkan perintah untuk workload update 100%:

    ./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=10000000 -p operationcount=500000000 -p insertproportion=0 -p readproportion=0 -p updateproportion=1 -p requestdistribution=zipfian -p mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx" -threads 300 -target 100000

    Modifikasi parameter berikut:

    • recordcount=10000000: Jumlah total catatan yang dimuat ke instans MongoDB. Nilai ini harus sama dengan nilai pada Langkah 3.

    • operationcount=500000000: Jumlah total operasi baca dan tulis yang akan dilakukan. Pengujian ini melakukan 500 juta operasi.

    • insertproportion=0: Proporsi operasi insert. Nilainya berkisar antara 0 hingga 1, di mana 1 merepresentasikan 100%.

    • readproportion=0: Proporsi operasi baca. Nilainya berkisar antara 0 hingga 1.

    • updateproportion=1: Proporsi operasi update. Nilainya berkisar antara 0 hingga 1.

    • mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx": String koneksi instans MongoDB. Dapatkan nilai ini seperti yang dijelaskan pada langkah sebelumnya.

    • threads=300: Jumlah thread konkuren untuk client.

    • target=100000: Target throughput dalam operasi per detik (ops/sec). Target pengujian ini adalah 100.000 ops/sec.

Hasil pengujian

Lingkungan

Tipe instans

Versi MongoDB

recordcount

threads

64 vCPU, 512 GB (dedicated)

MongoDB 6.0 (versi kernel minor 7.0.23)

10000000

300

Skenario pengujian

  • insert:read:update=100:0:0: Workload insert murni. Audit log diaktifkan untuk operasi insert.

  • insert:read:update=0:0:100: Workload update murni. Audit log diaktifkan untuk operasi update.

  • insert:read:update=50:50:0: 50% insert dan 50% baca. Audit log diaktifkan untuk operasi insert dan query.

  • insert:read:update=0:50:50: 50% baca dan 50% update. Audit log diaktifkan untuk operasi query dan update.

  • insert:read:update=30:70:0: 30% insert dan 70% baca. Audit log diaktifkan untuk operasi insert dan query.

  • insert:read:update=0:70:30: 70% baca dan 30% update. Audit log diaktifkan untuk operasi query dan update.

Metrik

  • CpuUsage: Utilisasi CPU instans.

  • MongoDB_RT: Waktu respons rata-rata instans, termasuk writes_avg_rt (waktu respons rata-rata untuk operasi tulis) dan reads_avg_rt (waktu respons rata-rata untuk operasi baca).

  • MongoDB_Opcounters: Jumlah operasi query, insert, dan update per detik.

Hasil pengujian

Tabel berikut merangkum perubahan performa setelah mengaktifkan audit log untuk setiap skenario.

Skenario pengujian

CpuUsage

MongoDB_RT

MongoDB_Opcounters

Pure insert (100:0:0)

Kenaikan 3 poin persentase (+15%)

Tidak ada perubahan signifikan

Tidak ada perubahan signifikan

Pure update (0:0:100)

Kenaikan 3 poin persentase (+20%)

Tidak ada perubahan signifikan

Tidak ada perubahan signifikan

50% insert + 50% read (50:50:0)

Tidak ada perubahan signifikan

writes_avg_rt: +700 μs (+20%); reads_avg_rt: +300 μs (+250%)

query: -5.000 (-20%);

insert: -5.000 (-20%)

50% read + 50% update (0:50:50)

Tidak ada perubahan signifikan

writes_avg_rt: +500 μs (+18%); reads_avg_rt: +150 μs (+200%)

query: -5.000 (-15%);

update: -5.000 (-15%)

30% insert + 70% read (30:70:0)

Tidak ada perubahan signifikan

writes_avg_rt: +600 μs (+20%); reads_avg_rt: +300 μs (+270%)

query: -12.000 (-20%);

insert: -5.000 (-20%)

70% read + 30% update (0:70:30)

Tidak ada perubahan signifikan

writes_avg_rt: +500 μs (+20%); reads_avg_rt: +150 μs (+150%)

query: -10.000 (-15%); update: -5.000 (-15%)

Analisis

  • Workload hanya tulis: Penggunaan CPU meningkat sedikit, tetapi waktu respons dan throughput tetap stabil. Mengaktifkan audit log pada skenario hanya-tulis memiliki overhead minimal.

  • Workload baca/tulis campuran: Penggunaan CPU tetap tidak berubah, tetapi throughput keseluruhan turun 15% hingga 20%, serta waktu respons baca dan tulis meningkat secara nyata.

Catatan

Persentase kenaikan untuk reads_avg_rt tampak tinggi (150% hingga 270%) karena garis dasarnya rendah (sekitar 100 μs). Kenaikan absolutnya hanya 150 hingga 300 μs.