sql >> Databasteknik >  >> NoSQL >> MongoDB

Högpresterande MongoDB-kluster på Amazon EC2

Prestandan är en viktig faktor när du distribuerar MongoDB på AWS. Ur ett hårdvaruperspektiv styrs MongoDB-prestanda på EC2 främst av två faktorer - RAM och diskhastighet. Vanligtvis (det finns alltid undantag), bör CPU inte vara ett problem, inte heller minne, eftersom det finns gott om storleksalternativ tillgängliga (R3, I2, C3/C4) som erbjuder en stor mängd RAM. För mer information om hur du väljer rätt instanstyp, kolla mitt andra blogginlägg: Hur du väljer rätt EC2-instanstyp

Historiskt sett har diskhastighet och latens varit ett konstant problem på Amazon EBS. Men Amazon Web Services erbjuder nu ett par alternativ för att hjälpa dig med diskprestanda:

  1. Provisioned IOPS-diskar

    I den tillhandahållna IOPS-modellen kan du ange när disken skapas antalet IOPS du vill att din disk ska stödja. Ju mer IOPS du tillhandahåller, desto mer genomströmning kommer din disk att kunna hantera. Du kan gå hela vägen upp till 4000 IOPS/disk! Däremot kan IOPS bli dyrt för 0,065 USD per IOPS-månad. Om du till exempel tillhandahåller 4000 IOPS för disken, kommer det att kosta dig 260 USD/månad för bara IOPS. Detta kan läggas snabbt om du har flera servrar.

  2. Lokal SSD

    Detta är det bästa alternativet för diskprestanda på Amazon AWS. Lokala SSD:er ger det bästa genomströmnings- och latensbeteendet av alla AWS-diskalternativ. Men de kallas "lokala" av en anledning. Om, av någon anledning, din virtuella maskin (VM) stoppas frigörs den tilldelade lokala lagringen. Så bördan av datatillförlitlighet ligger helt och hållet på användaren. Kan du distribuera två lokala SSD-datalager i två olika tillgänglighetszoner (AZ) och kalla det löst? Inte riktigt. Om AWS har ett områdesomfattande avbrott som det gjorde i USA-Öst några år tidigare, bör du räkna med att förlora dina lokala SSD:er i alla dina AZ:er. Av dessa skäl bör lokala SSD-instanser inte användas som primär datalagring för dina data.

Högpresterande MongoDB:replikuppsättning med 3 noder

Med dessa problem i åtanke introducerar vi vår högpresterande MongoDB-konfiguration på AWS. De högpresterande klustren använder en hybrid av lokal SSD och EBS-försedd IOPS-disk för att uppnå både hög prestanda och hög tillförlitlighet. En typisk konfiguration distribueras med hjälp av en replikuppsättning med tre noder.

  • Den primära och sekundära 1 använder lokala SSD-diskar
  • Secondary 2 använder EBS-provisioned IOPS

Högpresterande MongoDB 3-Node Replica Set

Vad betyder detta? Eftersom Primary och Secondary 1 körs på lokal SSD får du bästa möjliga diskprestanda från dina AWS-maskiner. Ingen mer nätverksbaserad EBS, bara blixtrande snabb lokal SSD. Läser och skriver till din primära och till och med läsningarna från den sekundära 1 kommer att fungera med SSD-hastighet. Secondary 2 använder EBS-provisioned IOPS för datadisken och du kan konfigurera mängden IOPS som ska konfigureras för ditt kluster. Denna konfiguration ger fullständig säkerhet för dina data, även om du använder lokala SSD-diskar. Vi erbjuder för närvarande fyra storlekar – Large, XLarge, X2XLarge, X4XLarge. Mer information finns i avsnitten Bring Your Own Cloud (BYOC) och Dedicated Clusters på vår prissida.

Om du har en mycket hög skrivbelastning är det möjligt att din EBS-instans kanske inte kan hänga med i dina SSD-instanser. I det här scenariot finns det några tillgängliga alternativ och vårt supportteam hjälper dig gärna genom dem. All vår befintliga funktionalitet, inklusive säkerhetskopiering, återställning, klonning, skalning, kompakt, etc. fortsätter att fungera som vanligt. Om du har ytterligare frågor, vänligen kontakta oss på [email protected].


  1. 2 sätt att ersätta en delsträng i MongoDB

  2. mongoexport samlad export till en csv-fil

  3. Användningsfall för NoSQL

  4. Korrekt sätt att importera json-filen till mongo