A nem társadatbázis virtuális magjainak vagy vCPU-jainak számának konvertálása Azure Cosmos DB RU/s-ra

A KÖVETKEZŐRE 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 tervezésekor, de mindössze annyit tud, hogy a meglévő adatbázisreplika-készlet(ek) teljes virtuális mag- vagy vCPU-száma. Amikor 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ő, szegmenses 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 kiépítése egy gyűjteményen; további információért olvassa el a kérelemegységek útmutatóját és a ru/s kiépítési útmutatót . Gyűjtemény migrálásakor az Azure Cosmos DB elegendő szegmenst helyez üzembe 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 a migrálás előtt történő 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: A meglévő adatbázis adathordozó replikakészletében lévő virtuális magok és/vagy vCPU-k teljes száma.
  • R: A meglévő adathordozó replikakészlet(ek) replikációs tényezője.
  • C: Ajánlott kiosztott 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, Gremlin vagy más API-k API-jának C-becslései jelenleg nem érhetők el

A C értékeket fent adták meg. A T értéké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 a teljes értéket. Ha nem tudja megbecsülni a T-t , fontolja meg az útmutatónk követését a ru/s becsléséhez az Azure Cosmos DB kapacitástervezővel az útmutató helyett. A T nem tartalmazhat virtuális magokat vagy virtuális processzorokat a meglévő adatbázis útválasztási kiszolgálójához vagy konfigurációs fürtjéhez, ha az összetevőket tartalmazza.

Az R esetében azt javasoljuk, hogy dugja be az adatbázisreplika-készletek átlagos replikációs tényezőjébe; 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 implementálják saját egyedi architektúráikat; Í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.

Bevált példa: ru/s becslése egy replikakészlet migrálásához

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

Fontolja meg egyetlen replikakészletet, amely egy négymagos kiszolgálói termékváltozaton alapuló R=3 replikációs tényezővel rendelkezik. Then

  • 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 Cosmos DB javasolt kérelemegységei pedig a következők:

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

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

Migrate a homogeneous sharded replica set with 3 shards, each with three replicas of a four-core SKU, to Azure Cosmos DB

Fontolja meg a három replikakészletből álló, három replikációs tényezőből álló, horizontálisan tagolt és replikált fürtöt, ahol minden kiszolgáló négymagos termékváltozat. Then

  • 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 Cosmos DB javasolt kérelemegységei pedig a következők:

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

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

Migrate a heterogeneous sharded replica set with 3 shards, each with different numbers of replicas of a four-core SKU, to Azure Cosmos DB

Vegyünk egy három replikakészletből álló szegmenses é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 mindegyik más replikációs tényezővel rendelkezik: 3x, 1x és 5x. Az ajánlott módszer az átlagos replikációs tényező használata a kérelemegységek kiszámításakor. Then

  • T = 36 virtuális mag
  • Ravg = (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 Cosmos DB javasolt kérelemegységei 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 lekéréséhez

Migrálás felhő által 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égében 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. Javasoljuk annak meghatározását, hogy ez a leírás érvényes-e az aktuális felhőalapú 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égeket is tartalmaznak, 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 2 vCPU = 1 virtuális mag w/HT vagy valami más. A virtuális mag/vCPU-kapcsolata általában hardverfüggő, ezért azt javasoljuk, hogy vizsgálja meg, hogy 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, javasoljuk, hogy a fenti C-becsléseket ru/s/vCore egységekkel kezelje, és szükség esetén a hardvernek megfelelő konverziós tényezővel konvertálja a T-t vCPU-ról virtuális magra.

Summary

A virtuális magokból vagy vCPU-kból származó ru/s becsléséhez a virtuális magok teljes virtuális magjaival és replikációs/tényezőivel kapcsolatos információkat kell összegyűjtenie a meglévő adatbázisreplika-készlet(ek)ből. Ezután az Azure Cosmos DB kérelemegységeinek (RU/s) becsléséhez használhatja a virtuális magok virtuális processzorai/ és az átviteli sebesség közötti ismert kapcsolatokat. Ennek a kérelemegység-becslésnek a megkeresése fontos lépés lesz az Azure Cosmos DB-adattulajdon méretének előrejelzésében a migrálás után.

Az alábbi táblázat összefoglalja a virtuális magok és a vCU-k közötti kapcsolatot a NoSQL-hez készült Azure Cosmos DB API é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