Konvertera antalet virtuella kärnor eller virtuella kärnor 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 begärandeenheter och ru/s-etableringsguiden för att lära dig mer. När du migrerar en samling etablerar Azure Cosmos DB tillräckligt med shards för att hantera dina etablerade enheter för begäranden och lagra dina data. Att beräkna RU/s för samlingar är därför 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 virtuella kärnor:

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: Rekommenderad etablerad 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ärden 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 i 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 beräkna RU/s med azure Cosmos DB-kapacitetsplaneraren i stället för den här guiden. T bö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 for MongoDB v4.0 ett annat C-värde än Azure Cosmos DB API för NoSQL.

Exempel: beräkna RU/s för migrering av en replikuppsättning

Migrate a replica set with 3 replicas of a four-core SKU to Azure Cosmos DB

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

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

Sedan är de rekommenderade enheter för begäranden 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 begäranden för Azure Cosmos 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

Migrate a homogeneous sharded replica set with 3 shards, each with three replicas of a four-core SKU, to 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 är de rekommenderade enheter för begäranden 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 begäranden för Azure Cosmos 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

Migrate a heterogeneous sharded replica set with 3 shards, each with different numbers of replicas of a four-core SKU, to 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 begäranden. Gäller följande

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

Sedan är de rekommenderade enheter för begäranden 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 begäranden för Azure Cosmos 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 kärnantalet du etablerar vCores/replica eller vCPU/replica value (T/R) för en R-nodreplikuppsättning. Det verkliga antalet kärnor är R-gånger mer än vad du etablerade explicit. Vi rekommenderar att du avgör 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.

vCores vs vCPU:er: I den här artikeln behandlar vi "vCore" och "vCPU" som synonyma, så C har enheter med RU/s/vCore eller RU/s/vCPU, utan skillnad. 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 2 vCPU = 1 virtuell kärna w/HT eller något annat. I allmänhet är vCPU-relationen med virtuell kärna/maskinvaruberoende och vi rekommenderar att du undersöker vilken relation som finns på din befintliga klustermaskinvara och om klusterberäkningen etableras när det gäller virtuella kärnor eller virtuella processorer. Om vCPU och virtuella kärnor har olika betydelse för din maskinvara rekommenderar vi att du behandlar ovanstående uppskattningar av C som enheter med RU/s/vCore och vid behov konverteraR T från vCPU till virtuell kärna med hjälp av konverteringsfaktorn som är lämplig för din maskinvara.

Sammanfattning

För att beräkna RU/s från virtuella kärnor eller vCPU:er måste du samla in information om totalt antal virtuella kärnor vCPU:er 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 uppskatta Enheter för Azure Cosmos DB-begäran (RU/s). Att hitta den här uppskattningen av begärandeenheten är ett viktigt steg för att förutse omfattningen av 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