sql >> Database >  >> NoSQL >> MongoDB

MongoDB-prestaties vergelijken op openbare clouds:AWS, Azure en DigitalOcean

Dus voordat u veel tijd en energie in een bepaalde cloud steekt, is het belangrijk om de algemene prestatiekenmerken van MongoDB op die cloud te begrijpen. We hebben naar deze informatie gezocht en deze niet gevonden, dus hebben we besloten om deze voor u samen te stellen als onderdeel van onze serie optredens.

De Benchmark Rig

We besloten voor deze test AWS, Azure en DigitalOcean te vergelijken. Er werd gekozen voor twee verschillende configuraties. De onderstaande tabel geeft een overzicht van de machineconfiguraties:

Provider Regio ScaleGrid Medium*
(Cores/RAM/Disk/Prov IOPS)
ScaleGrid Large* (Cores/RAM/Disk/Prov IOPS)
AWS VS oost 1/3.75GB/60GB/300 2/7,5 GB/120 GB/500
Azuurblauw VS-Oost 2/3.5GB/60GB/tot 2000 4/7GB/120GB/tot 4000
DigitalOcean New York 3 2/4GB/25GB/SSD** 4/8GB/35GB/SSD**

* Raadpleeg hier onder 'MongoDB Hosting' voor de details van machineconfiguraties.
** DigitalOcean heeft direct SSD's aangesloten.

De benchmarkprestatietests zijn uitgevoerd met YCSB Workload A (zware werkbelasting updaten). We hebben vorige maand in een zeer gedetailleerd bericht gesproken over YCSB, het opzetten en de bijbehorende werklasten.

  1. Alle benchmarktests zijn uitgevoerd in een zelfstandige configuratie
  2. Voor beide configuraties, 5 miljoen records zijn ingevoegd met verschillende niveaus van serverbelasting (gebaseerd op het aantal clientthreads).
  3. Voor de configuratie Medium is vervolgens werkbelasting A uitgevoerd met standaardwaarden (50% update, 50% lezen) met een aantal bewerkingen van 5 miljoen  op verschillende niveaus van serverbelasting.
  4. Voor de grote configuratie is Workload A uitgevoerd met standaardwaarden (50% update, 50% lezen) met een aantal bewerkingen van 10 miljoen op verschillende niveaus van serverbelasting.

Resultaten

We zullen resultaten bespreken op basis van insert-prestaties en doorvoer-/latentiekenmerken onder zware update-werklast.

Prestaties invoegen

Medium exemplaren

De doorvoer-/latentiekenmerken voor het invoegen van 5M-records op de mediumconfiguratie:

Grote instanties

De doorvoer-/latentiekenmerken voor het invoegen van 5M-records op de grote configuratie:

Prestaties bijwerken

Medium exemplaren

De doorvoer-/latentiekenmerken voor 5M schrijf-/updatebewerkingen op de mediumconfiguratie:

De test is alleen uitgevoerd met 32 ​​threads voor DigitalOcean. AWS en Azure waren platte voeringen met 16 draden. DigitalOcean geeft echter de indruk lineair te schalen tot 32 threads.

Grote instanties

De doorvoer-/latentiekenmerken voor 10M schrijf-/updatebewerkingen op de grote configuratie:

Algemene analyse

  1. Zoals verwacht, MongoDB op DigitalOcean heeft overal consistent hoge doorvoer/lage latentiekenmerken en verslaat de anderen zonder twijfel tijdens de invoegfase, waarbij het maximale sap uit zijn lokale SSD-schijven wordt gehaald. Interessant is dat, hoewel het heel goed gaat tijdens de lees-/updatefase, andere providers het een beetje concurrentie geven, vooral wanneer de serverbelasting toeneemt. Het is duidelijk dat AWS/Azure netwerkopslag met een veel hogere doorvoer gebruikt.
  2. Om betere prestaties van de AWS-schijf te krijgen, kan de gebruiker grotere schijfgroottes gebruiken of meer ingerichte IOPS toewijzen.
  3. Op Medium-instanties lijkt MongoDB op Azure het veel beter te doen dan AWS, zowel tijdens de invoeg- als de update-/leesfase. Dit was verrassend. De hardware is redelijk gelijk op elkaar afgestemd. Op grote instanties zijn de AWS-prestaties duidelijk beter dan die van Azure.
  4. Zowel AWS als Azure verslechteren vrij goed in latenties naarmate de belasting toeneemt. Azure lijkt een vrij goede degradatiecurve van de latentie te hebben.
  5. Een ander interessant aspect van MongoDB op AWS-prestaties is hoe "plat" het is:het lijkt gracieus te degraderen, zelfs op een log-schaal.
  6. Op basis van latentiecijfers lijkt de goede plek, vanuit het oogpunt van belasting, voor middelgrote en grote instanties respectievelijk 8 en 16 threads te zijn.


  1. Gebruikersinformatie opslaan met redis of mongodb

  2. Ik moet het object van MongoDB alleen ophalen met het array-item van filtered

  3. lente data mongodb id veldtoewijzing

  4. MongoDB – Breng uw eigen SSL-certificaten mee