Převod počtu virtuálních jader nebo virtuálních procesorů v nerelační databázi na RU/s služby Azure Cosmos DB

PLATÍ PRO: NoSQL

PLATÍ PRO: MongoDB

Tento článek vysvětluje, jak odhadnout jednotky žádostí služby Azure Cosmos DB při zvažování migrace dat, ale vše, co víte, je celkový počet virtuálních jader nebo virtuálních procesorů ve vašich stávajících replikách databáze. Když migrujete jednu nebo více sad replik do služby Azure Cosmos DB, každá kolekce uložená v těchto sadách replik se uloží jako kolekce Azure Cosmos DB skládající se z horizontálně děleného clusteru s faktorem replikace 4x. Další informace o naší architektuře najdete v tomto průvodci dělením a škálováním. Jednotky žádostí jsou způsob zřízení kapacity propustnosti v kolekci; Další informace najdete v průvodci jednotkami žádostí a průvodci zřizováním RU/s. Když migrujete kolekci, Azure Cosmos DB zřídí dostatek horizontálních oddílů, aby sloužily zřízeným jednotkám žádostí a ukládaly vaše data. Proto je odhad RU/s pro kolekce důležitým krokem v rozsahu plánovaného datového majetku služby Azure Cosmos DB před migrací. Na základě našich zkušeností s tisíci zákazníků jsme zjistili, že tento vzorec nám pomůže při dosažení přibližného počátečního bodu RU/s odhadu z virtuálních jader nebo virtuálních procesorů:

Provisioned RU/s = C*T/R

  • T: Celkový počet virtuálních jader a/nebo virtuálních procesorů ve stávajících databázových replikách replik.
  • R: Faktor replikace stávajících množiny replik ložiska dat.
  • C: Doporučené zřízené RU/s na virtuální jádro nebo virtuální procesor. Tato hodnota je odvozená z architektury služby Azure Cosmos DB:
    • C = 600 RU/s/vCore* pro Azure Cosmos DB for NoSQL
    • C = 1000 RU/s/vCore* pro Azure Cosmos DB pro MongoDB v4.0
    • Odhady jazyka C pro rozhraní API pro Cassandra, Gremlin nebo jiná rozhraní API momentálně nejsou k dispozici.

Hodnoty pro jazyk C jsou uvedeny výše. Hodnotu T je nutné určit prozkoumáním počtu virtuálních jader nebo virtuálních procesorů v každé sadě repliky pro data existující databáze a součtem získat celkový součet. Pokud nemůžete odhadnout hodnotu T , zvažte místo tohoto průvodce odhadem RU/s pomocí plánovače kapacity Azure Cosmos DB. Jazyk T by neměl obsahovat virtuální jádra ani virtuální procesory přidružené ke směrovacímu serveru nebo konfiguračnímu clusteru vaší stávající databáze, pokud obsahuje tyto komponenty.

V případě jazyka R doporučujeme připojit průměrný faktor replikace sad replik databáze. Pokud tyto informace nejsou k dispozici, pak R=3 je dobrým pravidlem palce.

Rozhraní API pro interoperabilitu azure Cosmos DB běží nad rozhraním API pro NoSQL a implementují vlastní jedinečné architektury; Proto má Azure Cosmos DB pro MongoDB v4.0 jinou hodnotu jazyka C než rozhraní API služby Azure Cosmos DB pro NoSQL.

Příklad práce: odhad RU/s pro migraci jedné sady replik

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

Zvažte jednu sadu replik s faktorem replikace R=3 na základě skladové položky se čtyřmi jádry serveru. Pak...

  • T = 12 virtuálních jader
  • R = 3

Pak doporučené jednotky žádostí pro rozhraní API služby Azure Cosmos DB pro NoSQL jsou

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

A doporučené jednotky žádostí pro Azure Cosmos DB pro MongoDB jsou

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

Příklad práce: odhad RU/s při migraci clusteru homogenních sad replik

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

Zvažte horizontálně dělený a replikovaný cluster obsahující tři sady replik, z nichž každý má faktor replikace tři, kde každý server je čtyřjádrový skladová položka. Pak...

  • T = 36 virtuálních jader
  • R = 3

Pak doporučené jednotky žádostí pro rozhraní API služby Azure Cosmos DB pro NoSQL jsou

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

A doporučené jednotky žádostí pro Azure Cosmos DB pro MongoDB jsou

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

Příklad práce: Odhad RU/s při migraci clusteru heterogenních sad replik

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

Zvažte horizontálně dělený a replikovaný cluster, který obsahuje tři sady replik, ve kterém je každý server založený na čtyřjádrových skladových posílacích. Sady replik jsou "heterogenní" v tom smyslu, že každý z nich má jiný faktor replikace: 3x, 1x a 5x. Doporučeným přístupem je použití průměrného faktoru replikace při výpočtu jednotek žádostí. Pak...

  • T = 36 virtuálních jader
  • Ravg = (3+1+5)/3 = 3

Pak doporučené jednotky žádostí pro rozhraní API služby Azure Cosmos DB pro NoSQL jsou

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

A doporučené jednotky žádostí pro Azure Cosmos DB pro MongoDB jsou

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

Tipy získání nejpřesnějšího odhadu RU/s

Migrace z databáze spravované v cloudu: Pokud aktuálně používáte cloudovou spravovanou databázi, tyto služby se často zřizují v jednotkách virtuálních jader nebo virtuálních procesorů (jinými slovy T), ale ve skutečnosti počet jader, který zřídíte, nastaví virtuální jádra, repliku, repliku nebo repliku (T/R) pro sadu replik r-uzlů; skutečný počet jader je R krát vyšší, než kolik jste zřídili explicitně. Doporučujeme určit, jestli se tento popis vztahuje na aktuální databázi spravovanou v cloudu, a pokud ano, musíte vynásobit nominální počet zřízených virtuálních jader nebo virtuálních procesorů jazykem R, abyste získali přesný odhad T.

Virtuální jádra vs. virtuální procesory: V tomto článku zacházíme s virtuálními jádry a virtuálními procesory jako se synonymem, a proto C obsahuje jednotky RU/s/vCore nebo RU/s/vCPU bez rozdílu. V praxi však toto zjednodušení nemusí být v některých situacích přesné. Tyto termíny mohou mít různé významy; Pokud například fyzické procesory podporují hyperthreading, je možné, že 2 virtuální procesory = 1 virtuální jádro w/HT nebo něco jiného. Obecně platí, že vztah virtuálních procesorů virtuálních/ jader je závislý na hardwaru a doporučujeme zjistit, jaký je vztah na vašem existujícím hardwaru clusteru a jestli se výpočetní prostředky clusteru zřizují z hlediska virtuálníchjader nebo virtuálních procesorů. Pokud virtuální procesor a virtuální jádro mají na vašem hardwaru odlišné významy, doporučujeme použít výše uvedené odhady jazyka C jako jednotky RU/s/vCore a v případě potřeby převést T z vCPU na virtuální jádro pomocí faktoru převodu vhodného pro váš hardware.

Shrnutí

Odhad RU/s z virtuálních jader nebo virtuálních procesorů vyžaduje shromažďování informací o celkovém počtu virtuálních/jader vCPU a faktoru replikace z existujících replik databází. Pak můžete použít známé relace mezi virtuálními jádry/ vCPU a propustností k odhadu jednotek žádostí služby Azure Cosmos DB (RU/s). Nalezení tohoto odhadu jednotek žádosti bude důležitým krokem při předvídání škálování datových aktiv služby Azure Cosmos DB po migraci.

Následující tabulka shrnuje vztah mezi virtuálními jádry a virtuálními procesory pro rozhraní API služby Azure Cosmos DB pro NoSQL a rozhraním API pro MongoDB v4.0:

virtuálních jader RU/s (ROZHRANÍ API pro NoSQL)
(rep. factor=3)
RU/s (rozhraní API pro 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

Další kroky