All Products
Search
Document Center

ApsaraDB for MongoDB:Uji stres koneksi maksimum untuk instans set replika

Last Updated:Jun 03, 2026

Verifikasi bahwa instans set replika ApsaraDB for MongoDB dengan spesifikasi berbeda dapat mencapai jumlah koneksi maksimumnya melalui uji stres yang dijalankan dari sebuah Instance ECS yang mengakses instans ApsaraDB for MongoDB dalam VPC yang sama.

Lingkungan pengujian

Buat sebuah Instance ECS dan sebuah instans set replika ApsaraDB for MongoDB. Buat instans set replika dan Buat Instance ECS.

Tabel berikut mencantumkan konfigurasi instans yang digunakan dalam pengujian ini.

Item konfigurasi

Instance ECS

Instans ApsaraDB for MongoDB yang menggunakan cloud disk

Instans ApsaraDB for MongoDB yang menggunakan local disk

Wilayah dan zona

Zona H Beijing

Zona H Beijing

Zona H Beijing

Jenis jaringan

Virtual Private Cloud (VPC)

VPC

VPC

Kategori instans

c6e, keluarga instans yang dioptimalkan untuk komputasi dengan peningkatan performa

Tujuan umum dan spesifikasi khusus

Tujuan umum dan spesifikasi khusus

Tipe instans

ecs.c6e.2xlarge

Tiga tipe instans diuji. Hasil pengujian.

Dua tipe instans diuji. Hasil pengujian.

Jenis penyimpanan

Disk Enterprise SSD (ESSD) AutoPL

ESSD

Local SSD

Versi image atau engine

Alibaba Cloud Linux 3.2104 LTS 64-bit

4.19.91-26.al7.x86_64

3.10.0-327.ali2017.alios7.x86_64

Versi kernel

N/A

  • Versi mayor: MongoDB 4.4

  • Versi minor dasar: 4.4.28

  • Versi mayor: MongoDB 4.2

  • Versi minor dasar: 4.2.23

  • Instans ApsaraDB for MongoDB menggunakan arsitektur tiga node: primary, secondary, dan hidden.

  • Instance ECS dan ApsaraDB for MongoDB berada dalam zona yang sama, dengan RTT rata-rata 0,103 ms.

Tool pengujian

Metode pengujian

  1. Tambahkan primary private IP address dari Instance ECS ke daftar putih instans ApsaraDB for MongoDB. Untuk informasi selengkapnya, lihat Ubah daftar putih.

    Catatan

    Anda dapat login ke Konsol ECS dan melihat Primary Private IP Address Instance ECS pada bagian Configuration Information di halaman Instance Details.

  2. Hubungkan ke Instance ECS. Untuk informasi selengkapnya, lihat Buat dan kelola Instance ECS menggunakan Konsol ECS (versi ekspres).

  3. Gunakan tool YCSB untuk memuat data pengujian.

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

    Modifikasi pengaturan berikut:

    • recordcount=1000000: total catatan yang dimuat ke instans ApsaraDB for MongoDB.

    • mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": string koneksi instans ApsaraDB for MongoDB. Akun: test, database: admin.

      Catatan

      Login ke Konsol ApsaraDB for MongoDB. Pada halaman Database Connection, temukan string koneksi di bagian Internal Connections - VPC.

    • threads 8: jumlah thread Klien konkuren.

  4. Jalankan uji stres:

    ./bin/ycsb.sh run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=10000000 -p operationcount=5000000 -p readproportion=50 -p updateproportion=50 -p requestdistribution=zipfian -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin&maxPoolSize=8000" -p table=test -threads 8000

    Modifikasi pengaturan berikut:

    • recordcount=1000000: total catatan yang dimuat ke instans ApsaraDB for MongoDB.

    • operationcount=5000000: total operasi baca dan tulis.

    • insertproportion=0: rasio insert.

    • readproportion=50: rasio baca.

    • updateproportion=50: rasio update.

    • mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": string koneksi instans ApsaraDB for MongoDB. Akun: test, database: admin.

      Catatan
      • Masuk ke Konsol ApsaraDB for MongoDB. Pada halaman Database Connection, temukan string koneksi di bagian Internal Connections - VPC.

      • Anda harus menentukan parameter maxPoolSize. Jika tidak, nilai default 100 akan diterapkan, yang dapat menyebabkan error MongoWaitQueueFullException dan mencegah pengujian mencapai jumlah koneksi maksimum yang ditargetkan.

  5. Lihat data pemantauan. Pemantauan Node (sebelumnya pemantauan dasar).

    Pada tab Node Monitoring, pilih rentang waktu pengujian dan lihat metrik CPU Utilization, Memory Usage, QPS, Connections, dan Connection Usage.

Informasi tambahan mengenai uji stres untuk 96.000 koneksi

YCSB bergantung pada Java. Memori heap JVM terbatas, sehingga pengujian dengan lebih dari 20.000 thread bersamaan menghasilkan error Cannot allocate memory.image

Menambahkan JAVA_OPTS tidak menyelesaikan masalah ini. Gunakan program uji stres kustom sebagai gantinya: program tersebut secara siklik menghasilkan thread, masing-masing membuat MongoClient yang melakukan kueri dan mempertahankan koneksi tanpa melepaskannya.

Satu client uji stres memiliki jumlah port terbatas dan tidak dapat mencapai 96.000 koneksi (yang dibutuhkan untuk spesifikasi 32-core 128 GB). Jalankan program yang sama di beberapa mesin.

Kueri rentang port saat ini:

sysctl net.ipv4.ip_local_port_range

Contoh output:

net.ipv4.ip_local_port_range = 40000    65535

Perluas rentang port sebelum pengujian:

sudo sysctl -w net.ipv4.ip_local_port_range="10240 65535"

Hasil pengujian

Instans yang menggunakan ESSD

Instans spesifikasi khusus dengan 4 core dan memori 8 GB

Jumlah koneksi maksimum: 8.000

QPS

Connections

Connection utilization

CPU utilization

Memory usage

image.png

image.png

image.png

image.png

image.png

Catatan

Granularitas per menit pada tab Node Monitoring mungkin tidak menampilkan jumlah koneksi puncak. Koneksi aktual mencapai 8.000, yang dapat diverifikasi melalui pemantauan granular atau sub-dokumen connections dalam output serverStatus.image

Instans spesifikasi khusus dengan 32 core dan memori 128 GB

Jumlah koneksi maksimum: 96.000

QPS

Connections

Connection utilization

CPU utilization

Memory usage

image.png

image.png

image.png

image.png

image.png

Catatan

Pengujian 96.000 koneksi menggunakan tool yang berbeda dari pengujian 8.000 dan 16.000 koneksi, sehingga metrik QPS, CPU, dan memori tidak dapat dibandingkan secara langsung.

Instans tujuan umum dengan 8 core dan memori 32 GB

Jumlah koneksi maksimum: 16.000

QPS

Connections

Connection utilization

CPU utilization

Memory usage

image.png

image.png

image.png

image.png

image.png

Instans yang menggunakan local disk

Instans tujuan umum dengan 16 core dan memori 64 GB

Jumlah koneksi maksimum: 32.000

QPS

Connections

Connection utilization

CPU utilization

Memory usage

image.png

image.png

image.png

image.png

image.png

Catatan

Dengan granularitas per menit, beberapa titik data menunjukkan celah untuk instans 16-core 64 GB karena perintah koleksi mengalami timeout saat CPU mencapai 100%. Jumlah koneksi aktual pada titik-titik tersebut tetap 32.000.

Instans spesifikasi khusus dengan 2 core dan memori 16 GB

Jumlah koneksi maksimum: 8.000

QPS

Connections

Connection utilization

CPU utilization

Memory usage

image.png

image.png

image.png

image.png

image.png

Rangkuman

  • Instans set replika ApsaraDB for MongoDB dengan semua spesifikasi dan jenis penyimpanan yang diuji berhasil mencapai jumlah koneksi maksimumnya.

  • Setelah mencapai batas maksimum, koneksi tambahan akan ditolak. Aplikasi mengalami latensi tinggi atau permintaan macet akibat kegagalan koneksi.

  • Koneksi bersamaan yang lebih banyak mengonsumsi lebih banyak CPU dan memori. Sesuaikan jumlah koneksi berdasarkan kebutuhan bisnis Anda.