Sdílet prostřednictvím


Vytváření kontejnerů a databází Azure Cosmos DB s propustností automatického škálování

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek Stůl

Ve službě Azure Cosmos DB můžete nakonfigurovat standardní (ruční) nebo automaticky škálovat zřízenou propustnost pro databáze a kontejnery. Zřízená propustnost automatického škálování ve službě Azure Cosmos DB umožňuje automaticky a okamžitě škálovat propustnost databáze nebo kontejneru (RU/s).

Zřízená propustnost automatického škálování je vhodná pro klíčové úlohy, které mají proměnlivé nebo nepředvídatelné vzory provozu, a vyžadují smlouvy SLA s vysokým výkonem a škálováním. Automatické škálování ve výchozím nastavení škáluje úlohy na základě nejaktivnější oblasti a oddílu. U neuniformních úloh, které mají různé vzory úloh napříč oblastmi a oddíly, může toto škálování způsobit zbytečné škálování. Dynamické škálování nebo dynamické automatické škálování je vylepšením automatického škálování zřízeného v celém prostředí, které pomáhá nezávisle škálovat takové neuniformní úlohy na základě využití v jednotlivých oblastech a na úrovni oddílů. Dynamické škálování umožňuje ušetřit náklady, pokud často dochází k horkým oddílům nebo máte více oblastí.

Výhody automatického škálování

Databáze a kontejnery Azure Cosmos DB, které jsou nakonfigurované s zřízenou propustností automatického škálování, mají následující výhody:

  • Jednoduché: Automatické škálování eliminuje složitost správy RU/s pomocí vlastních skriptů nebo ručního škálování kapacity.

  • Škálovatelné: Databáze a kontejnery automaticky škálují zřízenou propustnost podle potřeby. Nedošlo k přerušení připojení klientů, aplikací ani smluv SLA služby Azure Cosmos DB.

  • Nákladově efektivní: Automatické škálování pomáhá optimalizovat využití RU/s a využití nákladů vertikálním snížením kapacity, pokud se nepoužívá. Platíte jenom za prostředky, které vaše úlohy potřebují za hodinu. Pokud nastavíte maximální počet RU/s(Tmax) automatického škálování a použijete maximální hodnotu Tmax za 66 % hodin nebo méně, můžete ušetřit s automatickým škálováním. Kromě dynamického škálování je přidání sekundární oblasti pro vysokou dostupnost nákladově efektivnější, protože každá oblast a oddíly se škálují nezávisle na základě skutečného využití. Další informace najdete v článku o tom, jak si vybrat mezi standardní (ruční) a zřízenou propustností automatického škálování.

  • Vysoce dostupné: Databáze a kontejnery využívající automatické škálování používají stejný globálně distribuovaný back-end služby Azure Cosmos DB odolný proti chybám, který zajišťuje odolnost dat a vysokou dostupnost.

Případy použití automatického škálování

Mezi případy použití automatického škálování patří:

  • Proměnné nebo nepředvídatelné úlohy: Pokud mají vaše úlohy proměnlivé nebo nepředvídatelné špičky využití, automatické škálování pomáhá automaticky vertikálně navyšovat a snižovat kapacitu na základě využití. Mezi příklady patří maloobchodní weby, které mají různé vzory provozu v závislosti na sezónnosti; úlohy IOT, které mají špičky v různých časech v průběhu dne; obchodních aplikací, které vidí špičku využití několikrát za měsíc nebo rok a další. S automatickým škálováním už nemusíte ručně zřizovat maximální nebo průměrnou kapacitu.

  • Nové aplikace: Pokud vyvíjíte novou aplikaci a nevíte, kterou propustnost (RU/s) potřebujete, automatické škálování usnadňuje zahájení práce. Můžete začít s vstupním bodem automatického škálování 100 až 1000 RU/s, monitorovat využití a určit správné RU/s v průběhu času.

  • Zřídka používané aplikace: Pokud máte aplikaci, která se používá jenom několik hodin několikrát denně, týdne nebo měsíce – například nízkoobsádová aplikace / web / blogový web. Automatické škálování upraví kapacitu tak, aby zpracovávala využití ve špičce a po skončení se vertikálně navyšuje.

  • Úlohy vývoje a testování: Pokud vy nebo váš tým používáte databáze a kontejnery Azure Cosmos DB během pracovní doby, ale nepotřebujete je v noci nebo o víkendech, automatické škálování pomáhá ušetřit náklady vertikálním snížením kapacity na minimum, pokud se nepoužívá.

  • Naplánované produkční úlohy/dotazy: Pokud máte řadu naplánovaných požadavků, operací nebo dotazů, které chcete spouštět během nečinných období, můžete to snadno provést pomocí automatického škálování. Když potřebujete spustit úlohu, propustnost se automaticky škáluje na potřebnou hodnotu a následně se vertikálně sníží.

Vytvoření vlastního řešení těchto problémů nejen vyžaduje obrovské množství času, ale také představuje složitost konfigurace nebo kódu vaší aplikace. Automatické škálování umožňuje výše uvedené scénáře vyřadit a eliminuje potřebu vlastního nebo ručního škálování kapacity.

Případy použití dynamického škálování

Mezi případy použití dynamického škálování patří:

  • Databázové úlohy, které mají vysoce provozovanou primární oblast a sekundární pasivní oblast pro zotavení po havárii.
    • S dynamickým škálováním je dosažení vysoké dostupnosti s více oblastmi nákladově efektivnější. Sekundární oblast nezávisle a automaticky vertikálně sníží kapacitu při nečinnosti. Sekundární oblast se také automaticky škáluje, jakmile se stane aktivní a současně zpracovává provoz replikace zápisu z primární oblasti.
  • Databázové úlohy s více oblastmi
    • Tyto úlohy často sledují nerovnoměrnou distribuci požadavků napříč oblastmi kvůli přirozenému růstu a poklesu provozu v průběhu dne. Například databáze může být aktivní během pracovní doby napříč globálně distribuovanými časovými pásmy.

Jak funguje zřízená propustnost automatického škálování

Při konfiguraci kontejnerů a databází s automatickým škálováním zadáte maximální požadovanou propustnost Tmax . Azure Cosmos DB škáluje takovou propustnost T 0.1*Tmax <= T <= Tmax. Pokud například nastavíte maximální propustnost na 20 000 RU/s, propustnost se škáluje mezi 2000 až 20 000 RU/s. Vzhledem k tomu, že škálování je automatické a okamžité, v libovolném okamžiku můžete spotřebovávat až do zřízeného Tmax stavu bez zpoždění.

Každou hodinu se vám účtuje nejvyšší propustnost T , na kterou se systém škáloval během hodiny. Pokud je povolené dynamické škálování, škálování je založené na využití RU/s v každém fyzickém oddílu a oblasti. Vzhledem k tomu, že se jednotlivé oddíly a oblasti škálují nezávisle, může to vést k úsporám nákladů u neuniformních úloh, protože se vyhnete zbytečným škálováním.

Vstupní bod maximální propustnosti Tmax automatického škálování začíná na 1000 RU/s, který se škáluje mezi 100 až 1000 RU/s. Můžete nastavit Tmax přírůstky o 1 000 RU/s a kdykoli změnit hodnotu.

Pokud například máme kolekci s 1 000 RU/s a 2 oddíly, může každý oddíl přejít až na 500 RU/s. U jedné hodiny aktivity by využití vypadalo takto:

Oblast Oddíl Propustnost Využití Notes
Write O1 <= 500 RU/s 100 % 500 RU/s sestávající z 50 RU/s používaných pro operace zápisu a 450 RU/s pro operace čtení.
Write P2 <= 200 RU/s 40% 200 RU/s sestávající ze všech operací čtení.
Čteno O1 <= 150 RU/s 30 % 150 RU/s sestávající z 50 RU/s používaných pro zápisy replikované z oblasti zápisu. Pro operace čtení v této oblasti se používá 100 RU/s.
Čteno P2 <= 50 RU/s 10 %

Bez dynamického škálování se všechny oddíly rovnoměrně škálují na základě nejžhavějšího oddílu. V tomto příkladu, protože nejžhavější oddíl měl 100% využití, se všechny oddíly v oblastech zápisu i čtení škálují na 1000 RU/s, takže se celkový počet RU/s škáloval na 2000 RU/s.

Při dynamickém škálování se vzhledem k tomu, že propustnost jednotlivých oddílů a oblastí se škáluje nezávisle, celková velikost RU/s by byla 900 RU/s, což lépe odráží skutečný vzor provozu a snižuje náklady.

Povolení automatického škálování u existujících prostředků

Pomocí webu Azure Portal, rozhraní příkazového řádku nebo PowerShellu povolte automatické škálování u existující databáze nebo kontejneru. Kdykoli můžete přepínat mezi automatickým škálováním a standardní (ruční) zřízenou propustností. Další informace najdete v této dokumentaci .

Omezení propustnosti a úložiště pro automatické škálování

Pro libovolnou hodnotu Tmaxmůže databáze nebo kontejner uložit celkový součet 0.1 * Tmax GB. Po dosažení tohoto množství úložiště se maximální počet RU/s automaticky zvýší na základě nové hodnoty úložiště, aniž by to mělo vliv na vaši aplikaci.

Pokud například začnete s maximálním počtem RU/s 50 000 RU/s (škáluje se mezi 5000 až 50 000 RU/s), můžete uložit až 5 000 GB dat. Pokud překročíte 5 000 GB – například úložiště je teď 6000 GB, nové maximum RU/s se stane 60 000 RU/s (škáluje se mezi 6000 až 60 000 RU/s).

Pokud používáte propustnost na úrovni databáze s automatickým škálováním, můžete mít prvních 25 kontejnerů sdílenou maximální počet RU/s 1000 (škálování mezi 100 až 1 000 RU/s), pokud nepřekročíte 100 GB úložiště. Další informace najdete v této dokumentaci.

Povolení dynamického škálování

Dynamické škálování je ve výchozím nastavení povolené pro všechny účty Azure Cosmos DB vytvořené po 25. září 2024. Zákazníci, kteří chtějí tuto funkci povolit pro své starší účty, můžou tuto funkci provádět programově prostřednictvím Azure PowerShellu, rozhraní příkazového řádku nebo rozhraní REST API nebo z podokna funkcí na webu Azure Portal, jak je znázorněno níže:

  1. Na webu Azure Portal přejděte ke svému účtu služby Azure Cosmos DB.

  2. Přejděte na stránku Funkce .

  3. Vyhledejte a povolte funkci dynamického škálování (podle oblasti a automatického škálování oddílů).

    Snímek obrazovky s funkcí Dynamické škálování (na oblast a automatické škálování oddílů) na webu Azure Portal

    Důležité

    Tato funkce je povolená na úrovni účtu, takže všechny kontejnery automatického škálování a databáze se sdílenou propustností v rámci účtu automaticky použijí. Povolení této funkce nemá vliv na prostředky v účtu, které používají ruční propustnost. Ruční prostředky je potřeba změnit na automatické škálování, aby bylo možné využívat dynamické škálování. Povolení této funkce má nulový dopad na výpadky nebo výkon. Tato funkce se nevztahuje na účty bez serveru.

Monitorování metrik

K monitorování automatického škálování a dynamického škálování můžete použít následující metriky:

Název metriky Definice Využití metrik
Zřízená propustnost Zobrazuje agregované nejvyšší počet RU/s škálované na celou hodinu a představuje celkový počet RU/s škálovaný na hodinu. Metriku Provisioned Throughput můžete použít k zobrazení RU/s, které se vám účtují za každou hodinu. S automatickým škálováním se vám fakturuje nejvíce aktivní oddíl za každou hodinu a totéž se použije pro všechny oddíly a oblasti. S dynamickým automatickým škálováním se vám účtuje agregované nejvyšší počet RU/s škálovaný na každou hodinu na úrovni jednotlivých oddílů a oblastí.
Normalizovaná spotřeba RU Tato metrika představuje poměr spotřebovaných RU/s ke zřízeným RU/s na každé úrovni oddílu a oblasti. Pomocí této metriky určete, jestli je maximální propustnost automatického škálování pod nebo nad rámec zřízení.

Pokud je hodnota metriky konzistentně 100 % a u vaší aplikace dochází k omezování rychlosti (kód chyby 429), možná budete potřebovat více RU/s. Naproti tomu pokud je tato hodnota metriky nízká a neexistuje omezení rychlosti, může existovat prostor pro optimalizaci a snížení kapacity RU/s. Zjistěte, jak interpretovat a ladit kód 429 omezování rychlosti chyb.

Metrika Normalized RU Consumption odráží spotřebované RU/s v sekundární oblasti kvůli provozu replikace zápisu z primárního serveru, a to kromě veškerého provozu čtení na sekundárním serveru.
Ru s automatickým škálováním Zobrazuje dynamicky škálovanou zřízenou propustnost na jednotlivých oddílech a na úrovni oblasti pouze pro účty s podporou dynamického automatického škálování. Pomocí této metriky zjistíte, jak se oddíly v jednotlivých oblastech škálují nezávisle na základě jejich využití.

Pomocí metrik - Autoscaled RU Azure Monitoru můžete analyzovat způsob použití nového automatického škálování napříč oddíly a oblastmi. Vyfiltrujte požadovaný účet databáze a kontejner a pak vyfiltrujte nebo rozdělte metriku Fyzické ID oddílu. Tato metrika zobrazuje všechny oddíly v různých oblastech.

Porovnání – kontejnery nakonfigurované s ručním nebo automatickým škálováním propustnosti

Další podrobnosti najdete v této dokumentaci o výběru mezi standardní (ruční) a propustností automatického škálování.

Kontejnery se standardní (ruční) propustností Kontejnery s propustností automatického škálování
Zřízená propustnost (RU/s) Ručně zřízeno. Automaticky a okamžitě se škáluje na základě vzorů využití úloh.
Omezování rychlosti požadavků/operací (429) Může k tomu dojít, pokud spotřeba překročí zřízenou kapacitu. Nedojde k tomu, pokud spotřebujete RU/s v rozsahu propustnosti automatického škálování, který je nakonfigurovaný.
Plánování kapacity Musíte provést plánování kapacity a nastavit přesnou propustnost, kterou potřebujete. Systém se automaticky postará o plánování kapacity a správu kapacity.
Ceny Platíte za ručně zřízené RU/s za hodinu pomocí standardní (ruční) RU/s za hodinu. Platíte za nejvyšší POČET RU/s, na který se systém vertikálně navýšil do hodiny.

U účtů v jedné oblasti zápisu platíte za ru/s použité každou hodinu pomocí sazby RU/s automatického škálování za hodinu.

U účtů s několika oblastmi zápisu se za automatické škálování neúčtují žádné další poplatky. Za propustnost použitou po hodinách platíte pomocí stejné sazby RU/s zápisu do více oblastí za hodinu.

Nejvhodnější pro typy úloh Předvídatelné a stabilní úlohy Nepředvídatelné a proměnné úlohy

Migrace standardní zřízené propustnosti do automatického škálování

Uživatelé, kteří chtějí migrovat velký počet prostředků ze standardní zřízené propustnosti do automatického škálování, můžou pomocí skriptu Azure CLI migrovat všechny prostředky propustnosti v předplatném Azure do automatického škálování. Další informace najdete v tématu Převod na automatické škálování.

Další kroky