Sdílet prostřednictvím


Volba mezi standardní (ruční) a zřízenou propustností automatického škálování

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

Azure Cosmos DB podporuje dva typy nebo nabídky zřízené propustnosti: standard (ruční) a automatické škálování. Oba typy propustnosti jsou vhodné pro klíčové úlohy, které vyžadují vysoký výkon a škálování, a jsou podporovány stejnými smlouvami SLA služby Azure Cosmos DB o propustnosti, dostupnosti, latenci a konzistenci.

Tento článek popisuje, jak si vybrat mezi standardní (ruční) a zřízenou propustností automatického škálování pro vaši úlohu.

Přehled zřízených typů propustnosti

Než se ponoříte do rozdílu mezi standardním (ručním) a automatickým škálováním, je důležité nejprve pochopit, jak zřízená propustnost funguje ve službě Azure Cosmos DB.

Když použijete zřízenou propustnost, nastavíte propustnost měřenou v jednotkách žádostí za sekundu (RU/s) vyžadovanou pro vaši úlohu. Služba zřídí kapacitu potřebnou k podpoře požadavků na propustnost. Databázové operace se službou, jako jsou čtení, zápisy a dotazy, spotřebovávají určité množství jednotek žádostí (RU). Přečtěte si další informace o jednotkách žádostí.

Následující tabulka ukazuje porovnání standardních (ručních) a automatického škálování na vysoké úrovni.

Popis Standardní (ruční) Automatické škálování
Nejvhodnější pro Úlohy se stabilním nebo předvídatelným provozem Úlohy s proměnlivým nebo nepředvídatelným provozem Viz případy použití automatického škálování.
Jak to funguje Zřídíte nastavené množství RU/s T , které je v průběhu času statické, pokud je ručně nezměníte. Za každou sekundu můžete použít až T propustnost RU/s.

Pokud například nastavíte standardní (ruční) 400 RU/s, propustnost zůstane na 400 RU/s.
Nastavíte nejvyšší nebo maximální počet RU/s Tmax , které nechcete, aby systém překročil. Systém automaticky škáluje propustnost T tak, aby 0.1* Tmax <= T <= Tmax.

Pokud například nastavíte maximální počet RU/s automatického škálování 4000 RU/s, systém se škáluje mezi 400 až 4000 RU/s.
Kdy ji použít Kapacitu propustnosti (RU/s) chcete spravovat ručně a škálovat sami.

Máte vysoké a konzistentní využití zřízených RU/s. Všechny hodiny v měsíci, pokud nastavíte zřízené RU/s T a použijete celou částku za 66 % hodin nebo déle, odhadnete, že ušetříte standardní (ruční) zřízené RU/s.

Vychází z porovnání mezi nastavením T ve standardním (ručním) a stejným množstvím Tmax v automatickém škálování.
Chcete, aby služba Azure Cosmos DB spravuje kapacitu propustnosti (RU/s) a škálovat na základě využití.

Máte využití RU/s, které je proměnlivé nebo obtížné předpovědět. Pokud v měsíci nastavíte maximální počet RU/s Tmax automatického škálování a použijete celou částku Tmax za 66 % hodin nebo méně, odhadnete, že s automatickým škálováním ušetříte.

Vychází z porovnání mezi nastavením automatického škálování Tmax a stejnou velikostí T ve standardní (ruční) propustnosti.
Model fakturace Fakturace se provádí za hodinu pro zřízené RU/s bez ohledu na to, kolik RU se spotřebovalo.

Příklad:
  • Zřízení 400 RU/s
  • Hodina 1: Žádné žádosti
  • Hodina 2: 400 RU/s za žádosti


  • Za obě hodiny 1 až 2 se vám bude účtovat 400 RU/s za obě hodiny podle standardních (ručních) sazeb.
    Fakturace se provádí po hodinách pro nejvyšší POČET RU/s, na který se systém škáloval v hodině.

    Příklad:
  • Zřízení maximálního počtu RU/s automatického škálování 4000 RU/s (škálování mezi 400 až 4000 RU/s)
  • Hodina 1: Systém se vertikálně navýšil na nejvyšší hodnotu 3500 RU/s.
  • 2. hodina: Systém se škáloval na minimum 400 RU/s (vždy 10 % z Tmax), a to bez využití


  • Za 1 hodinu se vám bude účtovat 3500 RU/s a 400 RU/s za hodinu 2 za sazbu zřízené propustnosti automatického škálování. Sazba automatického škálování na RU/s je 1,5 * standardní (ruční) sazba.
    Co se stane, když překročíte zřízené RU/s RU/s zůstávají statické při zřizování. Všechny požadavky, které spotřebovávají nad rámec zřízených RU za sekundu, budou omezené rychlostí s odpovědí, která doporučuje dobu čekání před opakováním. V případě potřeby můžete ru/s ručně zvýšit nebo snížit. Systém škáluje RU/s až na maximální počet RU/s automatického škálování. Všechny požadavky, které spotřebovávají nad rámec maximálního počtu RU/s automatického škálování za sekundu, budou omezené rychlostí a odpovědí, která doporučí dobu čekání před opakováním.

    Vysvětlení vzorů provozu

    Nové aplikace

    Pokud vytváříte novou aplikaci a ještě neznáte vzor provozu, možná budete chtít začít na vstupním bodu RU/s (nebo minimálním počtu RU/s), abyste se vyhnuli nadměrnému zřizování na začátku. Nebo pokud máte malou aplikaci, která nepotřebuje vysoké škálování, můžete kvůli optimalizaci nákladů zřídit pouze minimální vstupní bod RU/s. U malých aplikací s nízkým očekávaným provozem můžete také zvážit bezserverový režim kapacity.

    Ať už plánujete používat standardní (ruční) nebo automatické škálování, měli byste zvážit následující:

    Pokud zřídíte standardní (ruční) RU/s v vstupním bodu 400 RU/s, nebudete moct využívat více než 400 RU/s, pokud propustnost nezměníte ručně. Za 400 RU/s se vám bude účtovat standardní (ručně zřízená) rychlost propustnosti za hodinu.

    Pokud zřídíte propustnost automatického škálování s maximálním počtu RU/s 4000 RU/s, prostředek se škáluje mezi 400 až 4000 RU/s. Vzhledem k tomu, že fakturační sazba propustnosti automatického škálování na RU/s je 1,5x standardní (ruční) sazby, v hodinách, kdy se systém škáloval na minimum 400 RU/s, bude vaše faktura vyšší, než kdybyste zřídili 400 RU/s ručně. S automatickým škálováním ale můžete kdykoli v případě špičky provozu aplikace spotřebovat až 4 000 RU/s bez nutnosti zásahu uživatele. Obecně byste měli zvážit výhodu, že můžete využívat maximální počet RU/s kdykoli s rychlostí 1,5x automatického škálování.

    Pomocí kalkulačky kapacity Azure Cosmos DB můžete odhadnout požadavky na propustnost.

    Existující aplikace

    Pokud máte existující aplikaci se standardní (ruční) zřízenou propustností, můžete pomocí metrik Azure Monitoru určit, jestli je váš vzor provozu vhodný pro automatické škálování.

    Nejprve vyhledejte metriku normalizované spotřeby jednotek žádosti vaší databáze nebo kontejneru.

    Dále určete, jak se normalizované využití v průběhu času liší. Najděte nejvyšší normalizované využití pro každou hodinu. Pak vypočítáte průměrné normalizované využití za všechny hodiny. Pokud zjistíte, že je vaše průměrné využití nižší než 66 %, zvažte povolení automatického škálování databáze nebo kontejneru. Naopak pokud je průměrné využití vyšší než 66 %, doporučujeme zůstat u standardní (ruční) zřízené propustnosti.

    Tip

    Pokud je váš účet nakonfigurovaný tak, aby používal zápisy do více oblastí a má více než jednu oblast, sazba za 100 RU/s je stejná pro ruční i automatické škálování. To znamená, že povolení automatického škálování nevyžaduje žádné další náklady bez ohledu na využití. V důsledku toho se vždy doporučuje používat automatické škálování s zápisy do více oblastí, pokud máte více než jednu oblast, abyste využili úspory z placení pouze za RU/s, na které se vaše aplikace škáluje. Pokud máte zápisy do více oblastí a jednu oblast, použijte průměrné využití k určení, jestli automatické škálování povede k úsporám nákladů.

    Příklady

    Pojďme se podívat na dvě různé ukázkové úlohy a analyzovat, jestli jsou vhodné pro ruční nebo automatické škálování propustnosti. Abychom si ukázali obecný přístup, analyzujeme tři hodiny historie a určíme rozdíl nákladů mezi ručním a automatickým škálováním. U produkčních úloh se doporučuje použít historii 7 až 30 dnů (nebo déle, pokud je k dispozici) k vytvoření vzoru využití RU/s.

    Poznámka:

    Všechny příklady uvedené v tomto dokumentu vycházejí z ceny účtu služby Azure Cosmos DB nasazeného v oblasti mimo státní správu v USA. Ceny a výpočty se liší v závislosti na používané oblasti. Nejnovější informace o cenách najdete na stránce s cenami služby Azure Cosmos DB.

    Předpoklady:

    • Předpokládejme, že aktuálně máme ruční propustnost 30 000 RU/s.
    • Naše oblast je nakonfigurovaná s jedním zápisem do jedné oblasti s jednou oblastí. Pokud bychom měli více oblastí, vynásobíme hodinové náklady počtem oblastí.
    • V účtech pro zápis do jedné oblasti použijte veřejné cenové sazby pro ruční (0,008 USD za 100 RU/s za hodinu) a propustnost automatického škálování (0,012 USD za 100 USD za hodinu). Podrobnosti najdete na stránce s cenami.

    Nejprve se podíváme na normalizovanou spotřebu RU. Tato úloha má proměnlivý provoz s normalizovanou spotřebou RU v rozsahu od 6 % do 100 %. Občas dochází ke špičkám na 100 %, které se obtížně predikují, ale mnoho hodin s nízkým využitím.

    Zatížení s proměnlivým provozem – normalizovaná spotřeba RU mezi 6 % a 100 % pro všechny hodiny

    Pojďme porovnat náklady na zřízení 30 000 RU/s ruční propustnosti a nastavit maximální počet RU/s automatického škálování na 30 000 (škáluje se mezi 3000 až 30 000 RU/s).

    Teď pojďme analyzovat historii. Předpokládejme, že máme využití popsané v následující tabulce. Průměrné využití za tyto tři hodiny je 39 %. Vzhledem k tomu, že normalizovaná spotřeba RU je průměrná na méně než 66 %, ukládáme pomocí automatického škálování.

    Všimněte si, že v hodině 1, kdy je využití 6 %, bude automatické škálování fakturovat RU/s za 10 % maximálního počtu RU/s, což je minimum za hodinu. I když náklady na automatické škálování můžou být v určitých hodinách vyšší než ruční propustnost, pokud je průměrné využití ve všech hodinách menší než 66 %, bude automatické škálování celkově levnější.

    Časové období Využití Fakturované automatické škálování RU/s Možnost 1: Ruční 30 000 RU/s Možnost 2: Automatické škálování mezi 3000 – 30 000 RU/s
    1. hodina 6 % 3000 30 000 * 0,008 / 100 = 2,40 USD 3000 * 0,012 / 100 = 0,36 USD
    2. hodina 100 % 30,000 30 000 * 0,008 / 100 = 2,40 USD 30 000 * 0,012 / 100 = 3,60 USD
    3. hodina 11% 3300 30 000 * 0,008 / 100 = 2,40 USD 3300 * 0,012 / 100 = 0,40 USD
    Celkem $7,20 4,36 USD (39% úspora)

    Tato úloha má stabilní provoz s normalizovanou spotřebou RU v rozsahu od 72 % do 100 %. Se zřízenými 30 000 RU/s to znamená, že spotřebováváme mezi 21 600 až 30 000 RU/s.

    Zatížení se stabilním provozem – normalizovaná spotřeba RU mezi 72 % a 100 % pro všechny hodiny

    Pojďme porovnat náklady na zřízení 30 000 RU/s ruční propustnosti a nastavit maximální počet RU/s automatického škálování na 30 000 (škáluje se mezi 3000 až 30 000 RU/s).

    Předpokládejme, že máme historii využití, jak je popsáno v tabulce. Průměrné využití těchto tří hodin je 88 %. Vzhledem k tomu, že normalizovaná spotřeba RU je průměrně větší než 66 %, ušetříme ji pomocí ruční propustnosti.

    Obecně platí, že pokud je průměrné využití za všech 730 hodin v jednom měsíci větší než 66 %, ušetříme ho pomocí ruční propustnosti.

    Časové období Využití Fakturované automatické škálování RU/s Možnost 1: Ruční 30 000 RU/s Možnost 2: Automatické škálování mezi 3000 – 30 000 RU/s
    1. hodina 72 % 21,600 30 000 * 0,008 / 100 = 2,40 USD 21600 * 0,012 / 100 = 2,59 Kč
    2. hodina 93 % 28,000 30 000 * 0,008 / 100 = 2,40 USD 28 000 * 0,012 / 100 = 3,36 Kč
    3. hodina 100 % 30,000 30 000 * 0,008 / 100 = 2,40 USD 30 000 * 0,012 / 100 = 3,60 USD
    Celkem $7,20 $9,55

    Tip

    S standardní (ruční) propustností můžete pomocí metriky normalizovaného využití odhadnout skutečné RU/s, které můžete použít, pokud přepnete na automatické škálování. Vynásobte normalizované využití v určitém časovém okamžiku aktuálně zřízeným standardem (ručním) RU/s. Pokud jste například zřídili 5000 RU/s a normalizované využití je 90 %, využití RU/s je 0,9 × 5000 = 4500 RU/s. Pokud zjistíte, že vzor provozu je proměnlivý, ale jste přesáhnutí nebo pod zřízeným provozem, můžete povolit automatické škálování a odpovídajícím způsobem změnit nastavení maximálního počtu RU/s automatického škálování.

    Výpočet průměrného využití

    Automatické škálování fakturuje nejvyšší počet RU/s škálovaný na hodinu. Při analýze normalizované spotřeby RU v průběhu času je důležité při výpočtu průměru použít nejvyšší využití za hodinu.

    Výpočet průměru nejvyššího využití za všechny hodiny:

    1. Nastavte agregaci na metriku Normalizovaná spotřeba RU na maximum.
    2. Vyberte interval času na 1 hodinu.
    3. Přejděte na možnosti grafu.
    4. Vyberte možnost pruhového grafu.
    5. V části Sdílet vyberte možnost Stáhnout do Excelu. Z vygenerované tabulky vypočítejte průměrné využití za všechny hodiny.

    Pokud chcete zobrazit normalizovanou spotřebu RU po hodinách, 1) Vyberte časové intervaly až 1 hodinu; 2) Úprava nastavení grafu; 3) Výběr možnosti pruhového grafu; 4) V části Sdílet vyberte možnost Stáhnout do Excelu, abyste vypočítali průměr ve všech hodinách.

    Měření a monitorování využití

    Po výběru typu propustnosti byste v průběhu času měli monitorovat aplikaci a podle potřeby provádět úpravy.

    Pokud používáte automatické škálování, pomocí služby Azure Monitor zobrazte zřízenou maximální počet RU/s (maximální propustnost automatického škálování) a počet RU/s, na které se systém aktuálně škáluje (zřízená propustnost).

    Následující příklad ukazuje proměnnou nebo nepředvídatelnou úlohu pomocí automatického škálování. Všimněte si, že neexistuje žádný provoz, systém škáluje RU/s na minimum 10 % maximálního počtu RU/s, což je v tomto případě 5 000 RU/s a 50 000 RU/s.

    Snímek obrazovky ukázkové úlohy s automatickým škálováním s maximálním počtem RU/s automatického škálování 50 000 RU/s a propustností v rozsahu od 5000 do 50 000 RU/s

    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 použít skript Azure CLI, který migruje všechny prostředky propustnosti v předplatném Azure na automatické škálování. Další podrobnosti najdete v tématu Převod na automatické škálování.

    Další kroky