A nem relációs adatbázisban lévő virtuális magok vagy vCPU-k számának konvertálása Azure Cosmos DB RU/s-ra

A KÖVETKEZŐKRE VONATKOZIK: NoSQL

A KÖVETKEZŐKRE VONATKOZIK: MongoDB

Ez a cikk bemutatja, hogyan becsülheti meg az Azure Cosmos DB kérelemegységeit (RU/s) az adatmigrálás mérlegelésekor, de mindössze annyit tud, hogy a meglévő adatbázisreplikakészlet(ek)ben a virtuális magok vagy virtuális processzorok teljes száma van megadva. Ha egy vagy több replikakészletet migrál az Azure Cosmos DB-be, az ezekben a replikákban tárolt gyűjtemények egy 4x replikációs tényezővel rendelkező, horizontálisan skálázott fürtből álló Azure Cosmos DB-gyűjteményként lesznek tárolva. Az architektúráról ebben a particionálási és skálázási útmutatóban olvashat bővebben. A kérelemegységek az átviteli sebesség kapacitásának kiosztása egy gyűjteményen; További információért olvassa el a kérelemegységek útmutatóját és az RU/s kiépítési útmutatót . Gyűjtemény migrálásakor az Azure Cosmos DB elegendő szegmenst épít ki a kiépített kérelemegységek kiszolgálásához és az adatok tárolásához. Ezért a gyűjtemények ru/s-jainak becslése fontos lépés a tervezett Azure Cosmos DB-adattulajdon skálájának migrálás előtti hatókörének meghatározásában. Több ezer ügyfél tapasztalatai alapján úgy találtuk, hogy ez a képlet segít a virtuális magokból vagy vCPU-kból származó hozzávetőleges kiindulási ru/s becslésben:

Provisioned RU/s = C*T/R

  • T: Az összes virtuális mag és/vagy vCPU a meglévő adatbázis adathordozó replikakészlet(ek)ben.
  • R: A meglévő adathordozó replikakészlet(ek) replikációs tényezője.
  • C: Ajánlott kiépített RU/s virtuális magonként vagy vCPU-nként. Ez az érték az Azure Cosmos DB architektúrájából származik:
    • C = 600 RU/s/vCore* az Azure Cosmos DB for NoSQL-hez
    • C = 1000 RU/s/vCore* a MongoDB-hez készült Azure Cosmos DB 4.0-s verzióhoz
    • A Cassandra, a Gremlin vagy más API-k API-jának C-becslései jelenleg nem érhetők el

A C értékeket fentebb adták meg. A T-t úgy kell meghatározni, hogy megvizsgálja a virtuális magok vagy vCPU-k számát a meglévő adatbázis minden adathordozó replikakészletében, és összegzi az összeget; ha nem tudja megbecsülni a T értékét, akkor az útmutató helyett fontolja meg az ru/s becslését az Azure Cosmos DB capacity planner használatával . A T nem tartalmazhat olyan virtuális magokat vagy vCPU-kat , amelyek a meglévő adatbázis útválasztási kiszolgálójához vagy konfigurációs fürtjéhez vannak társítva, ha azok tartalmazzák ezeket az összetevőket.

R esetén azt javasoljuk, hogy csatlakoztassa az adatbázisreplikakészletek átlagos replikációs tényezőjéhez; ha ez az információ nem érhető el, akkor az R=3 jó hüvelykujjszabály.

Az Azure Cosmos DB interop API-k a NoSQL API-n futnak, és saját egyedi architektúrákat implementálnak; így a MongoDB 4.0-s verzióhoz készült Azure Cosmos DB más C-értékkel rendelkezik, mint a NoSQL-hez készült Azure Cosmos DB API.

Működő példa: ru/s becslése egy replikakészlet migrálására

Négymagos termékváltozat 3 replikáját tartalmazó replikakészlet migrálása az Azure Cosmos DB-be

Fontolja meg egyetlen replikakészletet, amelynek replikációs tényezője R=3 egy négymagos kiszolgálói termékváltozat alapján. Akkor

  • T = 12 virtuális mag
  • R = 3

Ezután a NoSQL-hez készült Azure Cosmos DB API javasolt kérelemegységei a következők:

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

A MongoDB-hez készült Azure Cosmso DB-hez ajánlott kérelemegységek pedig a következők:

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

Működő példa: ru/s becslése homogén replikakészletek fürtjének migrálásakor

Homogén, 3 szegmensből álló replikakészlet migrálása négymagos termékváltozat három replikával az Azure Cosmos DB-be

Vegyünk egy horizontálisan skálázott és replikált fürtöt, amely három replikakészletet tartalmaz, amelyek mindegyike rendelkezik három replikációs tényezővel, ahol mindegyik kiszolgáló egy négymagos termékváltozat. Akkor

  • T = 36 virtuális mag
  • R = 3

Ezután a NoSQL-hez készült Azure Cosmos DB API javasolt kérelemegységei a következők:

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

A MongoDB-hez készült Azure Cosmso DB-hez ajánlott kérelemegységek pedig a következők:

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

Példa: ru/s becslése heterogén replikakészletek fürtjének migrálásakor

Heterogén, 3 szegmensből álló replikakészlet migrálása négymagos termékváltozat különböző számú replikáival az Azure Cosmos DB-be

Vegyünk egy három replikakészletből álló horizontálisan skálázott és replikált fürtöt, amelyben minden kiszolgáló egy négymagos termékváltozaton alapul. A replikakészletek "heterogének" abban az értelemben, hogy mindegyiknek más replikációs tényezője van: 3x, 1x és 5x. A javasolt módszer az átlagos replikációs tényező használata a kérelemegységek kiszámításakor. Akkor

  • T = 36 virtuális mag
  • Holló = (3+1+5)/3 = 3

Ezután a NoSQL-hez készült Azure Cosmos DB API javasolt kérelemegységei a következők:

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

A MongoDB-hez készült Azure Cosmso DB-hez ajánlott kérelemegységek pedig a következők:

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

Tippek a legpontosabb ru/s becslés beszerzéséhez

Migrálás felhőben felügyelt adatbázisból: Ha jelenleg felhőalapú adatbázist használ, ezek a szolgáltatások gyakran virtuális magok vagy vCPU-k egységeiben vannak kiépítve (más szóval T), de valójában a kiépített magok száma beállítja a virtuális magok/replikák vagy a vCPU/replika értékét (T/R) egy R-csomópont replikakészletéhez; A magok valódi száma R-szer nagyobb, mint amit explicit módon kiépített. Azt javasoljuk, hogy állapítsa meg, hogy ez a leírás vonatkozik-e az aktuális, felhőben felügyelt adatbázisra, és ha igen, meg kell szoroznia a kiosztott virtuális magok vagy vCPU-k névleges számát R-vel a T pontos becsléséhez.

Virtuális magok és vCPU-k: Ebben a cikkben a "vCore" és a "vCPU" szinonimaként kezeljük, így a C ru /s/vCore vagy RU/s/vCPU egységekkel rendelkezik, különbség nélkül. A gyakorlatban azonban előfordulhat, hogy ez az egyszerűsítés bizonyos helyzetekben nem pontos. Ezek a kifejezések különböző jelentéssel bírhatnak; Ha például a fizikai PROCESSZORok támogatják a hipertreadingot, lehetséges, hogy 1 vCPU = 2 virtuális mag vagy valami más. Általánosságban elmondható, hogy a virtuális mag/vCPU-kapcsolata hardverfüggő, ezért azt javasoljuk, hogy vizsgálja meg, mi a kapcsolat a meglévő fürthardveren, és hogy a fürt számítása virtuális magok vagy vCPU-k alapján van-e kiépítve. Ha a vCPU és a virtuális mag eltérő jelentéssel rendelkezik a hardveren, akkor javasoljuk, hogy a fenti C-becsléseket ru /s/vCore egységekkel kezelje, és szükség esetén konvertálja a T-t vCPU-ról virtuális magra a hardvernek megfelelő konverziós tényezővel.

Összefoglalás

A virtuális magokból vagy vCPU-kból származó RU/s becsléséhez a virtuális magok teljesvCPU-járól és replikációs/ tényezőjéről kell adatokat gyűjtenie a meglévő adatbázisreplika-készlet(ek)ből. Ezután a virtuális magok/vCPU-k és az átviteli sebesség közötti ismert kapcsolatok használatával megbecsülheti az Azure Cosmos DB kérelemegységeit (RU/s). Ennek a kérelemegység-becslésnek a megkeresése fontos lépés lesz az Azure Cosmos DB-adattulajdon skálájának előrejelzésében a migrálás után.

Az alábbi táblázat összefoglalja a virtuális magok és a vCPU-k közötti kapcsolatot az Azure Cosmos DB API for NoSQL és a MongoDB 4.0-s verzióhoz készült API között:

Virtuális magok RU/s (API for NoSQL)
(rep. factor=3)
RU/s (API a MongoDB 4.0-s verzióhoz)
(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

Következő lépések