Dela via


Beräknings- och lagringskonfigurationer för Azure Cosmos DB för MongoDB vCore-kluster

GÄLLER FÖR: MongoDB vCore

Beräkningsresurser tillhandahålls som virtuella kärnor, vilket representerar den underliggande maskinvarans logiska PROCESSOR. Lagringsstorleken för etablering refererar till den kapacitet som är tillgänglig för fragmenten i klustret. Lagringen används för databasfiler, temporära filer, transaktionsloggar och databasserverloggarna. Du kan välja inställningarna för beräkning och lagring oberoende av varandra. De valda beräknings- och lagringsvärdena gäller för varje shard i klustret.

Beräkning i Azure Cosmos DB för MongoDB vCore

Den totala mängden RAM-minne i en enda shard baseras på det valda antalet virtuella kärnor.

Klusternivå Virtuella kärnor En shard, GiB RAM
M25 2 (burstable) 8
M30 2 8
M40 4 16
M50 8 32
M60 16 64
M80 32 128
M200 64 256

Lagring i Azure Cosmos DB för MongoDB vCore

Den totala mängden lagringsutrymme som du etablerar definierar också den I/O-kapacitet som är tillgänglig för varje shard i klustret.

Lagringsstorlek, GiB Maximalt antal IOPS
32 3,500†
64 3,500†
128 3,500†
256 3,500†
512 3,500†
1,024 5 000
2 048 7 500
4,095 7 500
8,192 16 000
16,384 18 000
32 767 20 000

† Max IOPS med fri disksprängning. Lagring upp till 512 GiB inklusive levereras med fri disk bursting aktiverat.

Maximera IOPS för din beräknings-/lagringskonfiguration

Varje beräkningskonfiguration har en IOPS-gräns som beror på antalet virtuella kärnor. Se till att du väljer beräkningskonfiguration för klustret för att fullt ut använda IOPS i den valda lagringen.

Lagringsstorlek Lagrings-IOPS, upp till Lägsta beräkningsnivå Minsta virtuella kärnor
Upp till 0,5 TiB 3,500† M30 2 virtuella kärnor
1 TiB 5 000 M40 4 virtuella kärnor
2 TiB 7 500 M50 8 virtuella kärnor
4 TiB 7 500 M50 8 virtuella kärnor
8 TiB 16 000 M60 16 virtuella kärnor
16 TiB 18 000 M60 16 virtuella kärnor
32 TiB 20 000 M60 16 virtuella kärnor

† Max IOPS med fri disksprängning. Lagring upp till 512 GiB inklusive levereras med fri disk bursting aktiverat.

Om du till exempel behöver 8 TiB lagringsutrymme per shard eller mer kontrollerar du att du väljer 16 virtuella kärnor eller mer för nodens beräkningskonfiguration. Med det valet kan du maximera IOPS-användningen som tillhandahålls av den valda lagringen.

Överväganden för beräkning och lagring

Överväganden för arbetsuppsättning och minne

I Azure Cosmos DB for MongoDB vCore refererar arbetsuppsättningen till den del av dina data som används ofta av dina program. Den innehåller både data och index som regelbundet läses eller skrivs till under programmets vanliga åtgärder. Konceptet med en arbetsuppsättning är viktigt för prestandaoptimering eftersom MongoDB, liksom många databaser, presterar bäst när arbetsuppsättningen passar i RAM-minnet.

Tänk på följande komponenter för att definiera och förstå mongoDB-databasens arbetsuppsättning:

  1. Data som används ofta: Dessa data innehåller dokument som programmet läser eller uppdaterar regelbundet.
  2. Index: Index som används i frågeåtgärder ingår också i arbetsuppsättningen eftersom de måste läsas in i minnet för att säkerställa snabb åtkomst.
  3. Användningsmönster för program: Genom att analysera användningsmönstren i ditt program kan du identifiera vilka delar av dina data som används oftast.

Genom att behålla arbetsuppsättningen i RAM-minnet kan du minimera långsammare disk-I/O-åtgärder, vilket förbättrar prestandan för din MongoDB-databas. Om du upptäcker att arbetsuppsättningen överskrider det tillgängliga RAM-minnet kan du överväga att optimera datamodellen, lägga till mer RAM-minne eller använda horisontell partitionering för att distribuera data över flera noder.

Välja optimal konfiguration för en arbetsbelastning

Att fastställa rätt beräknings- och lagringskonfiguration för din Azure Cosmos DB for MongoDB vCore-arbetsbelastning innebär att utvärdera flera faktorer som är relaterade till programmets krav och användningsmönster. De viktigaste stegen och övervägandena för att fastställa den optimala konfigurationen är:

  1. Förstå din arbetsbelastning

    • Datavolym: Beräkna den totala storleken på dina data, inklusive index.
    • Läs-/skrivförhållande: Fastställa förhållandet mellan läsåtgärder och skrivåtgärder.
    • Frågemönster: Analysera de typer av frågor som programmet utför. Till exempel enkla läsningar, komplexa aggregeringar.
    • Samtidighet: Utvärdera antalet samtidiga åtgärder som databasen behöver hantera.
  2. Övervaka aktuella prestanda

    • Resursanvändning: Använd övervakningsverktyg för att spåra processor-, minnes-, disk-I/O- och nätverksanvändning innan du flyttar arbetsbelastningen till Azure och övervakar mått när du börjar köra MongoDB-arbetsbelastningen på ett Azure Cosmos DB for MongoDB vCore-kluster.
    • Prestandamått: Övervaka viktiga prestandamått som svarstid, dataflöde och cacheträffar.
    • Flaskhalsar: Identifiera eventuella befintliga flaskhalsar för prestanda, till exempel hög CPU-användning, minnestryck eller långsam disk-I/O.
  3. Beräkna resurskrav

    • Minne: Se till att din arbetsuppsättning (data och index som används ofta) passar in i RAM-minnet. Om storleken på din arbetsuppsättning överskrider det tillgängliga minnet kan du överväga att lägga till mer RAM-minne eller optimera datamodellen.
    • CPU: Välj en CPU-konfiguration som kan hantera frågebelastnings- och samtidighetskraven. CPU-intensiva arbetsbelastningar kan kräva fler kärnor. Använd måttet "CPU-procent" med "Max"-sammansättning i ditt Azure Cosmos DB for MongoDB vCore-kluster för att se historiska användningsmönster för beräkning.
    • Lagrings-IOPS: Välj lagring med tillräckligt med IOPS för att hantera läs- och skrivåtgärder. Använd måttet "IOPS" med "Max"-sammansättning i klustret för att se historisk IOPS-användning för lagring.
    • Nätverk: Se till att nätverksbandbredden är tillräcklig för att hantera dataöverföring mellan ditt program och databasen, särskilt för distribuerade installationer. Se till att du har konfigurerat värden för mongoDB-programmet för att stödja accelererade nätverkstekniker , till exempel SR-IOV.
  4. Skala på rätt sätt

    • Lodrät skalning: Skala upp och ned beräkning/RAM-minne och skala upp lagringen.
      • Beräkning: Öka den virtuella kärnor/RAM-minnet i ett kluster om din arbetsbelastning kräver en tillfällig ökning eller ofta överskrider 70 % av processoranvändningen under längre perioder.
      • Kontrollera att du har rätt datakvarhållning i din Azure Cosmos DB for MongoDB vCore-databas. Med kvarhållning kan du undvika onödig lagringsanvändning. Övervaka lagringsanvändningen genom att ange aviseringar för måtten "Lagringsprocent" och/eller "Lagring som används" med "Max"-aggregering. Överväg att öka lagringen när din arbetsbelastningsstorlek överskrider 70 % användning.
    • Horisontell skalning: Överväg att använda flera shards för klustret för att distribuera dina data över flera Azure Cosmos DB for MongoDB vCore-noder för prestandavinster och bättre kapacitetshantering när arbetsbelastningen växer. Detta är särskilt användbart för stora datamängder (över 2–4 TiB) och program med högt dataflöde.
  5. Testa och iterera

    • Benchmarking: Utför mätning för de vanligaste frågorna med olika konfigurationer för att fastställa prestandapåverkan. Använd CPU/RAM- och IOPS-mått och benchmarking på programnivå.
    • Belastningstestning: Utför belastningstestning för att simulera produktionsarbetsbelastningar och verifiera prestanda för den valda konfigurationen.
    • Kontinuerlig övervakning: Övervaka kontinuerligt din Distribution av virtuella Kärnor i Azure Cosmos DB för MongoDB och justera resurser efter behov baserat på ändrade arbetsbelastningar och användningsmönster.

Genom att systematiskt utvärdera dessa faktorer och kontinuerligt övervaka och justera konfigurationen kan du se till att MongoDB-distributionen är väl optimerad för din specifika arbetsbelastning.

Överväganden för lagring

Att bestämma lämplig lagringsstorlek för din arbetsbelastning innebär flera överväganden för att säkerställa optimal prestanda och skalbarhet. Här följer några överväganden för lagringsstorleken i Azure Cosmos DB för MongoDB vCore:

  1. Beräkna datastorlek:

    • Beräkna den förväntade storleken på dina Azure Cosmos DB för MongoDB vCore-data. Överväga:
      • Aktuell datastorlek: Om du migrerar från en befintlig databas.
      • Tillväxttakt: Beräkna hur mycket data som ska läggas till över tid.
      • Dokumentstorlek och struktur: Förstå dina datascheman och dokumentstorlekar eftersom de påverkar lagringseffektiviteten.
  2. Faktor i index:

    • Azure Cosmos DB for MongoDB vCore använder index för effektiv frågekörning. Index förbrukar extra diskutrymme.
    • Beräkna storleken på index baserat på:
      • Antal index.
      • Storleken på indexerade fält.
  3. Prestandaöverväganden:

    • Diskprestanda påverkar databasåtgärder, särskilt för arbetsbelastningar som inte passar deras arbetsuppsättning i RAM-minnet. Överväga:
      • I/O-dataflöde: IOPS eller indata-/utdataåtgärder per sekund är antalet begäranden som skickas till lagringsdiskar på en sekund. Den större lagringsstorleken levereras med mer IOPS. Se till att dataflödet är tillräckligt för läs-/skrivåtgärder. Använd måttet "IOPS" med "Max"-sammansättning för att övervaka använda IOPS i klustret.
      • Svarstid: Svarstid är den tid det tar för ett program att ta emot en enskild begäran, skicka den till lagringsdiskar och skicka svaret till klienten. Svarstid är ett kritiskt mått på ett programs prestanda utöver IOPS och dataflöde. Svarstiden definieras till stor del av den typ av lagring som används och lagringskonfigurationen. I en hanterad tjänst som Azure Cosmos DB for MongoDB används den snabba lagringen, till exempel Premium SSD-diskar, med inställningar optimerade för att minska svarstiden.
  4. Framtida tillväxt och skalbarhet:

    • Planera för framtida datatillväxt och skalbarhetsbehov.
    • Allokera mer diskutrymme utöver dagens behov för att hantera tillväxt utan frekventa lagringsexpansioner.
  5. Exempelberäkning:

    • Anta att din ursprungliga datastorlek är 500 GiB.
    • Med index kan den växa till 700 GiB.
    • Om du förväntar dig en fördubbling av data om två år planerar du för 1,4 TiB (700 GiB * 2).
    • Lägg till en buffert för omkostnader, tillväxt och driftbehov.
    • Du kanske vill börja med 1 TiB-lagring idag och skala upp den till 2 TiB när dess storlek växer över 800 GiB.

Att bestämma lagringsstorlek innebär en kombination av att uppskatta aktuella och framtida databehov, överväga indexering och komprimering och säkerställa tillräcklig prestanda och skalbarhet. Regelbunden övervakning och justering baserat på faktiska användnings- och tillväxttrender är också avgörande för att upprätthålla optimala MongoDB-prestanda.

Nästa steg