Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Cosmos DB umožňuje nakonfigurovat standardní (ruční) nebo automatickou propustnost pro databáze a kontejnery. Automatické škálování upravuje propustnost (RU/s) tak, aby odpovídala vašim úlohám, což zajišťuje vysokou efektivitu výkonu a nákladů.
Případy použití
Zřízená propustnost automatického škálování je ideální pro klíčové úlohy s proměnnými nebo nepředvídatelnými vzory provozu a vyžadují smlouvy o úrovni služeb (SLA) pro vysoký výkon a škálování. 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í, které je zřízeno napříč celým systémem a které pomáhá nezávisle škálovat takové nerovnoměrné úlohy na základě využití na úrovni jednotlivých regionů a oddílů. Dynamické škálování pomáhá ušetřit náklady, pokud často dochází k přetíženým oddílům nebo máte více regionů.
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í zjednodušuje správu RU/s tím, že eliminuje potřebu vlastního skriptování nebo ručního škálování.
Š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í optimalizuje RU/s a náklady tím, že se sníží, pokud se nepoužívá. Platíte jenom za prostředky, které vaše úlohy potřebují, za hodinu. Pokud použijete plnou kapacitu
Tmaxpo dobu 66 % nebo méně hodin za měsíc, může automatické škálování ušetřit náklady. Dynamické škálování také zvyšuje efektivitu přidávání sekundární oblasti pro zajištění vysoké dostupnosti, protože každá oblast a oddíly se škálují nezávisle na využití. Přečtěte si další informace v článku o tom, jak si vybrat mezi ručně zřízenou standardní propustností a automaticky škálovanou propustností.Vysoká dostupnost: Databáze a kontejnery s automatickým škálováním využívají globálně distribuovaný back-end služby Azure Cosmos DB odolný proti chybám k zajištění odolnosti a dostupnosti dat.
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 se sezónními vzory provozu, úlohy IoT se špičkami denního využití a obchodní aplikace s občasným využitím ve špičce. Automatické škálování eliminuje potřebu ručního přidělení propustnosti pro maximální nebo průměrnou kapacitu.
Nové aplikace: Pokud vyvíjíte novou aplikaci a nevíte, jak je potřeba propustnost (RU/s), automatické škálování zjednoduš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ýden nebo měsíc – například aplikace s nízkým objemem, web nebo blog. Automatické škálování upraví kapacitu tak, aby zpracovávala využití ve špičce a po skončení se sniž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í. Při spuštění úlohy se propustnost automaticky škáluje na požadovanou hodnotu a následně se vertikálně sníží.
Vytvoření vlastního řešení těchto problémů vyžaduje významný čas a zvyšuje 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 s 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 se nezávisle a automaticky zmenšuje, když je nečinná. Sekundární oblast se také automaticky škáluje, jakmile se stane aktivní a současně zpracovává zátěž způsobenou replikací zápisu z primární oblasti.
- Databázové úlohy s více oblastmi
- U těchto úloh často dochází k nerovnoměrné distribuci požadavků napříč oblastmi kvůli přirozenému růstu provozu a poklesům v průběhu dne. Například databáze je aktivní během pracovní doby napříč globálně distribuovanými časovými pásmy.
Jak funguje mechanismus automatického škálování propustnosti
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 propustnost T tak, aby 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. Škálování je automatické a okamžité, takže můžete kdykoli bez zpoždění využívat až do poskytnutého Tmax.
Za každou hodinu se vám účtuje nejvyšší propustnost T , na kterou se systém během této hodiny škáluje. 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 tato fakturace vést k úsporám nákladů u neuniformních úloh, protože se vyhnete zbytečným škálováním.
Vstupním bodem pro maximální propustnost automatického škálování je 1000 RU/s, přičemž škálování probíhá mezi 100 a 1000 RU/s. Můžete nastavit Tmax v přírůstcích po 1 000 RU/s a hodnotu můžete kdykoli změnit.
Pokud má například kolekce 1000 RU/s a 2 oddíly, může každý oddíl vertikálně navýšit kapacitu až na 500 RU/s. U jedné hodiny aktivity by využití vypadalo takto:
| Oblast | Partition | Throughput | Využití | Poznámky |
|---|---|---|---|---|
| Napiš | P1 | < = 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í. |
| Napiš | P2 | <= 200 RU/s | 40 % | 200 RU/s složené výhradně z operací čtení. |
| Čti | P1 | <= 150 RU/s | 30% | 150 RU/s sestávající z 50 RU/s používaných pro zápisy replikované z zapisovací oblasti. Pro operace čtení v této oblasti se používá 100 RU/s. |
| Čti | P2 | < = 50 RU/s | 10 % |
Bez dynamického škálování systém rovnoměrně škáluje všechny oddíly na základě nejvíce zatíženého oddílu. V tomto příkladu, protože nejvytíženě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áluje na 2000 RU/s.
S dynamickým škálováním se propustnost jednotlivých oddílů a oblastí škáluje nezávisle, což vede k celkovému počtu 900 RU/s, což lépe odráží skutečný vzor provozu a snižuje náklady.
Povolení automatického škálování pro existující prostředky
Pomocí Azure portal, CLI 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 Tmax databáze nebo kontejner ukládá celkem 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čínáte s maximálním počtem 50 000 RU/s (škáluje se mezi 5 000 a 50 000 RU/s), můžete uložit až 5 000 GB dat. Pokud úložiště překročí 5 000 GB, například dosažení 6 000 GB, stane se nové maximum RU/s 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ůže prvních 25 kontejnerů sdílet maximální počet RU/s 1 000 (škáluje se 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, rozhraní REST API nebo z podokna funkcí na webu Azure Portal, jak je znázorněno níže:
Na webu Azure Portal přejděte ke svému účtu služby Azure Cosmos DB.
Vyberte stránku Funkce .
Vyhledejte a povolte funkci Dynamické škálování (automatické škálování podle oblasti a podle oddílů).
Important
Tato funkce je povolená na úrovni účtu, takže všechny kontejnery automatického škálování a všechny databáze se sdílenou propustností pro automatické škálování v rámci účtu automaticky tuto možnost používají. Povolení této funkce neovlivní prostředky v účtu, které mají nastavenou ruční propustnost. Ruční prostředky je potřeba změnit na automatické škálování, aby bylo možné využít dynamické škálování. Povolení této funkce má nulový výpadek nebo účinek na výkon. Tato funkce se nevztahuje na účty bez serveru. Tato funkce je podporovaná ve všech cloudech.
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 | Definition | 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 jste účtováni podle nejaktivnějšího oddílu za každou hodinu a to samé platí pro všechny oddíly a oblasti. S dynamickým automatickým škálováním se vám účtuje za nejvyšší počet RU/s během každé hodiny, agregovaný na úrovni každé partice a regionu. |
| 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, zda je maximální propustnost automatického škálování nedostatečně nebo nadměrně zřízená. Pokud je hodnota metriky konzistentně 100%a vaše aplikace uvidí 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 pochopit a odstraňovat chyby kódu 429 omezujícího přístup. 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 Azure Monitor můžete analyzovat, jak se nové automatické škálování vztahuje na oddíly a oblasti. Vyfiltrujte požadovaný účet databáze a kontejner a poté vyfiltrujte nebo rozdělte podle metriky Physical PartitionID. Tato metrika zobrazuje všechny oddíly napříč různými oblastmi. |
Important
Ke správě kapacity doporučujeme použít nativní funkci dynamického škálování služby Azure Cosmos DB. Pokud je to ale potřeba, můžete metriku normalizované spotřeby RU ve službě Azure Monitor použít k rozhodování o programovém škálování. Jiné přístupy, jako je použití volání ReadThroughputAsync() v sadách SDK (Software Development Kit) služby Azure Cosmos DB k získání ProvisionedThroughput hodnoty nebo použití ProvisionedThroughput metriky ve službě Azure Monitor, se nedoporučuje a vede k nepřesným výsledkům. Tyto metriky představují fakturovanou propustnost se zpožděním a neměly by se používat pro rozhodování o škálování.
Porovnání – kontejnery nakonfigurované s ručním nebo automatickým škálováním propustnosti
Další informace 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) | K tomu může dojít v případě, že 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 | Potřebujete naplánovat kapacitu a nastavit přesnou propustnost, kterou potřebujete. | Systém automaticky zpracovává plánování a správu kapacity. |
| cen | Platíte za ručně zřízené RU/s za hodinu podle standardní (ruční) sazby RU/s za hodinu. | Platíte za hodinu za nejvyšší počet RU/s, na který se systém navýšil během hodiny. U účtů s jednou oblastí zápisu platíte za RU/s použité každou hodinu na základě sazby za automatické škálování RU/s 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 na hodinové bázi platíte pomocí stejné sazby zápisu RU/s do více regionů za hodinu. |
| Nejvhodnější pro typy úloh | Předvídatelné a stabilní úlohy | Nepředvídatelné a proměnlivé úlohy |
Migrace standardní zřízené propustnosti do automatického škálování
Uživatelé, kteří chtějí migrovat mnoho 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 na automatické škálování.
Související obsah
- Projděte si nejčastější dotazy k automatickému škálování.
- Zjistěte, jak si vybrat mezi propustností ručního a automatického škálování.
- Zjistěte, jak přidělit propustnost pro automatické škálování na databázi nebo kontejneru Azure Cosmos DB.
- Přečtěte si další informace o dělení ve službě Azure Cosmos DB.