MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Membandingkan Kinerja MongoDB di Cloud Publik:AWS, Azure &DigitalOcean

Jadi sebelum Anda menginvestasikan banyak waktu dan energi ke cloud tertentu, penting untuk memahami karakteristik kinerja keseluruhan MongoDB di cloud itu. Kami mencari informasi ini dan tidak menemukannya – jadi kami memutuskan untuk mengumpulkannya untuk Anda sebagai bagian dari rangkaian pertunjukan kami.

Rig Tolok Ukur

Kami memutuskan untuk membandingkan AWS, Azure, dan DigitalOcean untuk pengujian ini. Dua set konfigurasi yang berbeda dipilih. Tabel di bawah ini merangkum konfigurasi mesin:

Penyedia Wilayah ScaleGrid Medium*
(Cores/RAM/Disk/Prov IOPS)
ScaleGrid Large* (Cores/RAM/Disk/Prov IOPS)
AWS AS Timur 1/3.75GB/60GB/300 2/7.5GB/120GB/500
Azure AS Timur 2/3.5GB/60GB/hingga 2000 4/7GB/120GB/hingga 4000
DigitalOcean New York 3 2/4GB/25GB/SSD** 4/8GB/35GB/SSD**

* Lihat di sini di bagian “MongoDB Hosting” untuk  detail konfigurasi mesin.
** DigitalOcean telah memasang SSD secara langsung.

Uji performa benchmark dijalankan menggunakan YCSB Workload A (memperbarui beban kerja berat). Kami berbicara tentang YCSB, menyiapkannya dan beban kerjanya dalam posting yang sangat rinci bulan lalu.

  1. Semua pengujian benchmark dilakukan dalam konfigurasi mandiri
  2. Untuk kedua konfigurasi, 5 juta catatan dimasukkan dengan berbagai tingkat beban server (berdasarkan jumlah utas klien).
  3. Untuk konfigurasi Medium, maka Workload A dijalankan dengan nilai default (50% Update, 50% Read) dengan jumlah operasi 5 juta  pada berbagai tingkat beban server.
  4. Untuk konfigurasi Large, maka Workload A dijalankan dengan nilai default (50% Update, 50% Read) dengan jumlah operasi 10 juta pada berbagai tingkat beban server.

Hasil

Kami akan membahas hasil berdasarkan kinerja insert dan karakteristik throughput/latency di bawah update beban kerja berat.

Sisipkan Performa

Instance Sedang

Karakteristik Throughput/latensi untuk penyisipan record 5M pada konfigurasi Medium:

Instance Besar

Karakteristik Throughput/latensi untuk penyisipan record 5M pada konfigurasi Besar:

Perbarui Performa

Instance Sedang

Karakteristik Throughput/latensi untuk operasi penulisan/pembaruan 5 juta pada konfigurasi medium:

Tes dijalankan dengan 32 utas untuk DigitalOcean saja. AWS dan Azure adalah lapisan datar pada 16 utas. Namun, DigitalOcean memberikan kesan penskalaan linier hingga 32 utas.

Instance Besar

Karakteristik Throughput/latensi untuk operasi tulis/pembaruan 10 juta pada konfigurasi Besar:

Analisis Keseluruhan

  1. Seperti yang diharapkan, MongoDB di DigitalOcean memiliki karakteristik throughput tinggi/latensi rendah secara konsisten dan mengalahkan yang lain selama fase penyisipan, mengekstrak jus maksimum dari drive SSD lokalnya. Menariknya, meskipun berjalan dengan sangat baik selama fase baca/perbarui, penyedia lain memberikan sedikit persaingan yang adil, terutama ketika beban server meningkat. Jelas AWS/Azure menggunakan penyimpanan jaringan throughput yang jauh lebih tinggi.
  2. Untuk mendapatkan kinerja yang lebih baik dari disk AWS, pengguna dapat menggunakan ukuran disk yang lebih besar atau mengalokasikan lebih banyak IOPS yang disediakan.
  3. Pada instans Medium, MongoDB di Azure tampaknya melakukan jauh lebih baik daripada AWS secara konsisten, baik selama fase penyisipan dan kemudian pembaruan/pembacaan. Ini mengejutkan. Perangkat kerasnya cukup seimbang. Pada instans Besar, kinerja AWS jauh lebih baik daripada Azure.
  4. AWS dan Azure mengalami penurunan latensi dengan cukup baik seiring dengan peningkatan beban. Azure tampaknya memiliki kurva degradasi latensi yang cukup baik.
  5. Aspek lain yang menarik dari kinerja MongoDB pada AWS adalah seberapa "flat-lined" itu:Tampaknya menurun dengan anggun bahkan pada skala log.
  6. Berdasarkan angka latensi, terlihat seperti sweet spot, dari sudut pandang beban, untuk instans Sedang dan Besar masing-masing adalah 8 dan 16 utas.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JSON membuat serial Mongodb

  2. pymongo:nama 'ISODate' tidak ditentukan

  3. Tidak peka huruf besar indeks unik Mongo

  4. Statistik Visual untuk Server MongoDB Anda

  5. Tabel Azure Vs MongoDB di Azure