Het aantal vCores of vCPU's in uw niet-relationele database converteren naar Azure Cosmos DB RU/s

VAN TOEPASSING OP: NoSQL

VAN TOEPASSING OP: MongoDB

In dit artikel wordt uitgelegd hoe u azure Cosmos DB-aanvraageenheden (RU/s) kunt schatten wanneer u gegevensmigratie overweegt, maar u weet alleen het totale aantal vCores of vCPU's in uw bestaande databasereplicaset(s). Wanneer u een of meer replicasets migreert naar Azure Cosmos DB, wordt elke verzameling in deze replicasets opgeslagen als een Azure Cosmos DB-verzameling die bestaat uit een shardcluster met een 4x-replicatiefactor. Meer informatie over onze architectuur vindt u in deze handleiding voor partitioneren en schalen. Aanvraageenheden zijn de wijze waarop doorvoercapaciteit wordt ingericht voor een verzameling; u kunt de handleiding voor aanvraageenheden en de RU/ s-inrichtingshandleiding lezen voor meer informatie. Wanneer u een verzameling migreert, richt Azure Cosmos DB voldoende shards in om uw ingerichte aanvraageenheden te leveren en uw gegevens op te slaan. Het schatten van RU/s voor verzamelingen is daarom een belangrijke stap bij het bepalen van de schaal van uw geplande Azure Cosmos DB-gegevensdomein voorafgaand aan de migratie. Op basis van onze ervaring met duizenden klanten hebben we vastgesteld dat deze formule ons helpt bij het verkrijgen van een ruwe schatting van ru/s op basis van vCores of vCPU's:

Provisioned RU/s = C*T/R

  • T: Totaal aantal vCores en/of vCPU's in uw bestaande databasegegevensdragende replicaset(s).
  • R: Replicatiefactor van uw bestaande replicaset(s) met gegevens.
  • C: Aanbevolen ingerichte RU/s per vCore of vCPU. Deze waarde is afgeleid van de architectuur van Azure Cosmos DB:
    • C = 600 RU/s/vCore* voor Azure Cosmos DB voor NoSQL
    • C = 1000 RU/s/vCore* voor Azure Cosmos DB voor MongoDB v4.0
    • C-schattingen voor API voor Cassandra, Gremlin of andere API's zijn momenteel niet beschikbaar

Waarden voor C zijn hierboven opgegeven. T moet worden bepaald door het aantal vCores of vCPU's in elke gegevensdragende replicaset van uw bestaande database te onderzoeken en op te tellen om het totaal op te halen; Als u geen schatting kunt maken van T, kunt u overwegen onze handleiding te volgen voor het schatten van RU/s met behulp van Azure Cosmos DB-capaciteitsplanner in plaats van deze handleiding. T mag geen vCores of vCPU's bevatten die zijn gekoppeld aan de routeringsserver of het configuratiecluster van uw bestaande database, als deze onderdelen bevat.

Voor R raden we u aan de gemiddelde replicatiefactor van uw databasereplicasets aan te sluiten; als deze informatie niet beschikbaar is, is R=3 een goede vuistregel.

Interoperabiliteits-API's van Azure Cosmos DB worden uitgevoerd op de API voor NoSQL en implementeren hun eigen unieke architecturen; Azure Cosmos DB voor MongoDB v4.0 heeft dus een andere C-waarde dan Azure Cosmos DB API for NoSQL.

Gewerkt voorbeeld: ru/s schatten voor migratie van één replicaset

Een replicaset met 3 replica's van een SKU met vier kernen migreren naar Azure Cosmos DB

Overweeg een enkele replicaset met een replicatiefactor van R=3 op basis van een server-SKU met vier kernen. Dan

  • T = 12 vCores
  • R = 3

Vervolgens zijn de aanbevolen aanvraageenheden voor De Azure Cosmos DB-API voor NoSQL

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

En de aanbevolen aanvraageenheden voor Azure Cosmso DB voor MongoDB zijn

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

Gewerkt voorbeeld: ru/s schatten bij het migreren van een cluster met homogene replicasets

Een homogene shard-replicaset met 3 shards, elk met drie replica's van een SKU met vier kernen, migreren naar Azure Cosmos DB

Overweeg een shard- en gerepliceerd cluster dat bestaat uit drie replicasets met elk een replicatiefactor drie, waarbij elke server een SKU met vier kernen is. Dan

  • T = 36 vCores
  • R = 3

Vervolgens zijn de aanbevolen aanvraageenheden voor De Azure Cosmos DB-API voor NoSQL

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

En de aanbevolen aanvraageenheden voor Azure Cosmso DB voor MongoDB zijn

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

Gewerkt voorbeeld: ru/s schatten bij het migreren van een cluster met heterogene replicasets

Migreer een heterogene shard-replicaset met 3 shards, elk met verschillende aantallen replica's van een SKU met vier kernen, naar Azure Cosmos DB

Overweeg een shard- en gerepliceerd cluster dat bestaat uit drie replicasets, waarin elke server is gebaseerd op een SKU met vier kernen. De replicasets zijn 'heterogeen' in de zin dat elk een andere replicatiefactor heeft: respectievelijk 3x, 1x en 5x. De aanbevolen aanpak is om de gemiddelde replicatiefactor te gebruiken bij het berekenen van aanvraageenheden. Dan

  • T = 36 vCores
  • Ravg = (3+1+5)/3 = 3

Vervolgens zijn de aanbevolen aanvraageenheden voor De Azure Cosmos DB-API voor NoSQL

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

En de aanbevolen aanvraageenheden voor Azure Cosmso DB voor MongoDB zijn

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

Tips voor het verkrijgen van de meest nauwkeurige SCHATTING VAN RU/s

Migreren vanuit een in de cloud beheerde database: Als u momenteel een in de cloud beheerde database gebruikt, lijken deze services vaak te zijn ingericht in eenheden van vCores of vCPU's (met andere woorden, T), maar in feite stelt het aantal kernen dat u inricht de vCores/replica of vCPU/replica-waarde (T/R) in voor een R-knooppuntreplicaset. het werkelijke aantal kernen is R keer meer dan wat u expliciet hebt ingericht. U wordt aangeraden te bepalen of deze beschrijving van toepassing is op uw huidige in de cloud beheerde database. Als dat het zo is, moet u het nominale aantal ingerichte vCores of vCPU's vermenigvuldigen met R om een nauwkeurige schatting van T te krijgen.

vCores versus vCPU's: In dit artikel behandelen we 'vCore' en 'vCPU' als synoniemen, dus C heeft eenheden van RU/s/vCore of RU/s/vCPU, zonder onderscheid. In de praktijk is deze vereenvoudiging echter in sommige situaties mogelijk niet juist. Deze termen kunnen verschillende betekenissen hebben; Als uw fysieke CPU's bijvoorbeeld hyperthreading ondersteunen, is het mogelijk dat 1 vCPU = 2 vCores of iets anders. Over het algemeen is devCPU-relatie van vCore/ afhankelijk van de hardware en raden we u aan te onderzoeken wat de relatie is op uw bestaande clusterhardware en of uw clusterberekening is ingericht in termen van vCores of vCPU's. Als vCPU en vCore verschillende betekenissen hebben op uw hardware, raden we u aan de bovenstaande schattingen van C te behandelen als eenheden van RU/s/vCore en indien nodig T van vCPU naar vCore te converteren met behulp van de conversiefactor die geschikt is voor uw hardware.

Samenvatting

Voor het schatten van RU/s van vCores of vCPU's moet informatie worden verzameld over het totale aantal vCores/vCPU's en de replicatiefactor van uw bestaande databasereplicaset(s). Vervolgens kunt u bekende relaties tussen vcores/vCPU's en doorvoer gebruiken om azure Cosmos DB-aanvraageenheden (RU/s) te schatten. Het vinden van deze schatting van de aanvraageenheid is een belangrijke stap bij het anticiperen op de schaal van uw Azure Cosmos DB-gegevensdomein na de migratie.

De onderstaande tabel bevat een overzicht van de relatie tussen vCores en vCPU's voor Azure Cosmos DB API for NoSQL en API voor MongoDB v4.0:

vCores RU/s (API voor NoSQL)
(rep. factor=3)
RU/s (API voor 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

Volgende stappen