Konvertera antalet virtuella kärnor eller vCPU:er i din icke-relationella databas till Azure Cosmos DB RU/s

GÄLLER FÖR: NoSQL

GÄLLER FÖR: Mongodb

Den här artikeln beskriver hur du beräknar enheter för Azure Cosmos DB-begäranden (RU/s) när du överväger datamigrering, men allt du vet är det totala antalet virtuella kärnor eller vCPU:er i dina befintliga databasreplikuppsättningar. När du migrerar en eller flera replikuppsättningar till Azure Cosmos DB lagras varje samling i dessa replikuppsättningar som en Azure Cosmos DB-samling som består av ett fragmenterat kluster med en 4x-replikeringsfaktor. Du kan läsa mer om vår arkitektur i den här partitionerings- och skalningsguiden. Enheter för programbegäran är hur dataflödeskapacitet etableras i en samling. Du kan läsa guiden för enheter för programbegäran och etableringsguiden för RU/s om du vill veta mer. När du migrerar en samling etablerar Azure Cosmos DB tillräckligt med shards för att hantera dina etablerade enheter för programbegäran och lagra dina data. Därför är beräkning av RU/s för samlingar ett viktigt steg för att skala ut skalan för din planerade Azure Cosmos DB-dataegendom före migreringen. Baserat på vår erfarenhet av tusentals kunder har vi upptäckt att den här formeln hjälper oss att komma fram till en ungefärlig ru/s-uppskattning från virtuella kärnor eller vCPU:er:

Provisioned RU/s = C*T/R

  • T: Totalt antal virtuella kärnor och/eller vCPU:er i dina befintliga databasdatalagerreplikuppsättningar .
  • R: Replikeringsfaktor för dina befintliga datalagerreplikuppsättningar.
  • C: Rekommenderade etablerade RU/s per virtuell kärna eller vCPU. Det här värdet härleds från arkitekturen i Azure Cosmos DB:
    • C = 600 RU/s/vCore* för Azure Cosmos DB för NoSQL
    • C = 1 000 RU/s/vCore* för Azure Cosmos DB för MongoDB v4.0
    • C-uppskattningar för API för Cassandra, Gremlin eller andra API:er är för närvarande inte tillgängliga

Värdena för C anges ovan. T måste fastställas genom att undersöka antalet virtuella kärnor eller vCPU:er i varje datalagerreplikuppsättning för din befintliga databas och summera för att få totalsumman. Om du inte kan beräkna T bör du överväga att följa vår guide för att uppskatta RU/s med hjälp av Kapacitetsplaneraren för Azure Cosmos DB i stället för den här guiden. T får inte innehålla virtuella kärnor eller vCPU:er som är associerade med den befintliga databasens routningsserver eller konfigurationskluster, om den har dessa komponenter.

För R rekommenderar vi att du ansluter den genomsnittliga replikeringsfaktorn för dina databasreplikuppsättningar. Om den här informationen inte är tillgänglig är R=3 en bra tumregel.

Azure Cosmos DB-interop-API:er körs ovanpå API:et för NoSQL och implementerar sina egna unika arkitekturer. Därför har Azure Cosmos DB för MongoDB v4.0 ett annat C-värde än Azure Cosmos DB API för NoSQL.

Fungerat exempel: beräkna RU/s för migrering av en enskild replikuppsättning

Migrera en replikuppsättning med 3 repliker av en SKU med fyra kärnor till Azure Cosmos DB

Överväg en enskild replikuppsättning med replikeringsfaktorn R=3 baserat på en server-SKU med fyra kärnor. Gäller följande

  • T = 12 virtuella kärnor
  • R = 3

Sedan rekommenderas enheter för programbegäran för Azure Cosmos DB API för NoSQL

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (12 vCores) / (3) = 2,400 RU/s

Och de rekommenderade enheter för programbegäran för Azure Cosmso DB för MongoDB är

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (12 vCores) / (3) = 4,000 RU/s

Exempel: beräkna RU/s vid migrering av ett kluster med homogena replikuppsättningar

Migrera en homogen shardad replikuppsättning med 3 shards, var och en med tre repliker av en SKU med fyra kärnor, till Azure Cosmos DB

Överväg ett fragmenterat och replikerat kluster som består av tre replikuppsättningar var och en med replikeringsfaktor tre, där varje server är en SKU med fyra kärnor. Gäller följande

  • T = 36 virtuella kärnor
  • R = 3

Sedan rekommenderas enheter för programbegäran för Azure Cosmos DB API för NoSQL

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (36 vCores) / (3) = 7,200 RU/s

Och de rekommenderade enheter för programbegäran för Azure Cosmso DB för MongoDB är

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (36 vCores) / (3) = 12,000 RU/s

Exempel: beräkna RU/s vid migrering av ett kluster med heterogena replikuppsättningar

Migrera en heterogen shardad replikuppsättning med 3 shards, var och en med olika antal repliker av en SKU med fyra kärnor, till Azure Cosmos DB

Överväg ett fragmenterat och replikerat kluster som består av tre replikuppsättningar, där varje server baseras på en SKU med fyra kärnor. Replikuppsättningarna är "heterogena" i den meningen att var och en har en annan replikeringsfaktor: 3x, 1x respektive 5x. Den rekommenderade metoden är att använda den genomsnittliga replikeringsfaktorn vid beräkning av enheter för programbegäran. Gäller följande

  • T = 36 virtuella kärnor
  • Ravg = (3+1+5)/3 = 3

Sedan rekommenderas enheter för programbegäran för Azure Cosmos DB API för NoSQL

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (36 vCores) / (3) = 7,200 RU/s

Och de rekommenderade enheter för programbegäran för Azure Cosmso DB för MongoDB är

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (36 vCores) / (3) = 12,000 RU/s

Tips för att få den mest exakta RU/s-uppskattningen

Migrera från en molnhanterad databas: Om du för närvarande använder en molnhanterad databas verkar dessa tjänster ofta etableras i enheter med virtuella kärnor eller vCPU:er (med andra ord T), men i själva verket anger antalet kärnor/replikering eller vCPU/replikvärde (T/R) för en R-nodreplikuppsättning. Det verkliga antalet kärnor är R-gånger mer än vad du har etablerat uttryckligen. Vi rekommenderar att du fastställer om den här beskrivningen gäller för din aktuella molnhanterade databas, och i så fall måste du multiplicera det nominella antalet etablerade virtuella kärnor eller vCPU:er med R för att få en korrekt uppskattning av T.

virtuella kärnor jämfört med virtuella processorer: I den här artikeln behandlar vi "vCore" och "vCPU" som synonyma, och därför har C enheter med RU/s/vCore eller RU/s/vCPU, utan åtskillnad. I praktiken kanske denna förenkling dock inte är korrekt i vissa situationer. Dessa termer kan ha olika betydelser; Om dina fysiska processorer till exempel stöder hypertrådning är det möjligt att 1 vCPU = 2 virtuella kärnor eller något annat. I allmänhet ärvCPU-relationen med virtuell/ kärna maskinvaruberoende och vi rekommenderar att du undersöker relationen på din befintliga klustermaskinvara och om din klusterberäkning etableras när det gäller virtuella kärnor eller vCPU:er. Om vCPU och virtuella kärnor har olika betydelser för din maskinvara rekommenderar vi att du behandlar ovanstående uppskattningar av C som enheter med RU/s/vCore och vid behov konvertering av T från vCPU till virtuell kärna med hjälp av den konverteringsfaktor som är lämplig för din maskinvara.

Sammanfattning

Beräkning av RU/s från virtuella kärnor eller vCPU:er kräver insamling av information om totalt antalvirtuella kärnor och replikeringsfaktorn / från dina befintliga databasreplikuppsättningar. Sedan kan du använda kända relationer mellan virtuella kärnor/vCPU:er och dataflöde för att beräkna Enheter för Azure Cosmos DB-begäranden (RU/s). Att hitta den här uppskattningen av begärandeenheten är ett viktigt steg för att förutse skalan för din Azure Cosmos DB-dataegendom efter migreringen.

Tabellen nedan sammanfattar relationen mellan virtuella kärnor och vCPU:er för Azure Cosmos DB API för NoSQL och API för MongoDB v4.0:

virtuella kärnor RU/s (API för NoSQL)
(rep. factor=3)
RU/s (API för MongoDB v4.0)
(rep. factor=3)
3 600 1000
6 1200 2000
12 2400 4000
24 4800 8000
48 9600 16000
96 19200 32000
192 38400 64000
384 76800 128000

Nästa steg