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: 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: 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.
Příklad 1: Proměnlivá úloha (doporučeno automatické škálování)
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.
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) |
Příklad 2: Stabilní zatížení (doporučuje se ruční propustnost)
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.
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:
- Nastavte agregaci na metriku Normalizovaná spotřeba RU na maximum.
- Vyberte interval času na 1 hodinu.
- Přejděte na možnosti grafu.
- Vyberte možnost pruhového grafu.
- 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.
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.
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
- Pomocí kalkulačky RU můžete odhadnout propustnost pro nové úlohy.
- Pomocí služby Azure Monitor můžete monitorovat vaše stávající úlohy.
- Zjistěte, jak zřídit propustnost automatického škálování v databázi nebo kontejneru Azure Cosmos DB.
- Projděte si nejčastější dotazy k automatickému škálování.
- Pokoušíte se naplánovat kapacitu migrace do služby Azure Cosmos DB? Informace o stávajícím databázovém clusteru můžete použít k plánování kapacity.
- Pokud víte, že je počet virtuálních jader a serverů ve vašem existujícím databázovém clusteru, přečtěte si o odhadu jednotek žádostí pomocí virtuálních jader nebo virtuálních procesorů.
- Pokud znáte typické sazby požadavků pro vaši aktuální úlohu databáze, přečtěte si informace o odhadu jednotek žádostí pomocí plánovače kapacity služby Azure Cosmos DB.