Přeskočit obsah

Škálování podle měření

Vytvořeno a udržováno pomocí AI agentů. Za posouzení a zveřejnění odpovídají lidé.

Návrh · vyžaduje lidské posouzení · r2

Popisujte práci, nikoli počet účtů

Zaznamenejte špičkovou rychlost příchodu práce, souběžné zpracování, velikost vstupů, poměr čtení a zápisů, nejzatíženější tenanty nebo klíče, růst dat, úlohy na pozadí a kvóty závislostí. Před volbou kapacity určete uživatelský průchod, cíl služby, nákladový rámec a potřebnou rezervu při selhání. Milion převážně neaktivních účtů může být snazší obsloužit než několik nákladných souběžných úloh.

Následující pořadí změn je doporučení této knihovny, nikoli záruka, že každá zátěž má projít všemi kroky. Měření a zamítnuté alternativy uchovávejte v ADR.

Měňte vždy jedno omezení

Pozorované omezení Kandidátní změna Důkaz a kompromis
Pomalé dotazy nebo příliš mnoho síťových volání Profilujte, doplňte indexy, omezte velikosti výsledků a opatrně dávkujte Na reprezentativních datech porovnejte plány dotazů, latenci a náklady zápisů
Opakované nákladné čtení Cache s výslovnými klíči tenantů a pravidly čerstvosti Ověřte studený start, invalidaci a souběžné nenalezení v cache; měřte zatížení původního zdroje
Práce přichází rychleji, než ji lze dokončit Omezené fronty a workery, kvóty a řízení přijímání práce Kontrolujte stáří fronty, spravedlivé sdílení a obnovu; před vyčerpáním zdrojů předvídatelně odmítejte
Je saturován procesor aplikace nebo nezávislé I/O Přidejte bezstavové repliky Přepočítejte celkový počet databázových spojení a rychlost požadavků do závislostí
Převažuje čtení Replika nebo projekce pro dotazy Určete zpoždění a chování čtení po zápisu; testujte zastaralé i nedostupné čtení
Přetrvává změřený limit úložiště, zápisů nebo směrování Rozdělte data nebo izolujte část zátěže Prokažte směrování, chování zatížených klíčů, vyvažování, migraci a význam operací přes více oddílů

Nepředpokládejte, že cache zajistí bezpečnou autorizaci: vymezte klíče a správně invalidujte oprávnění. Vlna nenalezených položek může přetížit původní zdroj. Přidání aplikačních replik může zhoršit výpadek databáze, pokud každá replika otevře velký pool spojení nebo opakuje stejnou práci.

Experiment určete před generováním provozu

Pomocí průvodce výkonnostním testováním rozlište výchozí zátěž, náraz, stresový test, dlouhodobou zátěž a experiment obnovy. Určete cílové prostředí, oprávnění k testu, syntetická data, rozložení provozu, podmínky zastavení a cenový limit. Kromě běžné cesty testujte zamítnuté i nákladné operace. Uchovejte výsledky jednotlivých požadavků, metriky zdrojů, stáří fronty a verzovaný popis zátěže.

Odděleně měřte úspěšnou propustnost, latenci p95/p99, chyby a odmítnutou práci. Systém, který vykazuje skvělou latenci jen díky zahození většiny požadavků, nesplnil cíl. Zahrňte jednu pomalou závislost a sledujte, zda nevyčerpá veškerou souběžnost nebo nevyvolá násobení opakovaných pokusů. Po snížení provozu potvrďte vyprázdnění front a návrat k cílům služby bez ručního restartu.

Pro hrubou kontrolu ve stabilním systému platí, že průměrný počet rozpracovaných operací je průměrná rychlost příchodů vynásobená průměrnou dobou pobytu uvnitř téže měřené hranice. Nejde o odhad krajních latencí ani příslib kapacity; přetížená rostoucí fronta porušuje předpoklad ustáleného stavu. Každý odhad ověřte se skutečným rozložením a způsobem selhání.

Rozhodněte a připravte cestu zpět

Škálujte, když trvalé měření nebo zdůvodněná předpověď ohrožuje dohodnutý cíl či rezervu při selhání. Zaznamenejte spouštěč, očekávaný přínos, provozní náklad, vlastníka změny a plán návratu nebo dopředné opravy. Autoscaling potřebuje horní meze, započítanou dobu startu, kapacitu závislostí a řízení rozpočtu. Neopraví neefektivní transakci ani nezaručí dostupnost.

Zápisy ve více regionech a sharding přidávají rozhodnutí o směrování a konzistenci. Zavádějte je až po ověření převzetí při selhání, konfliktů či porovnání stavu a migrace na reprezentativních datech. Níže uvedený zdroj o dělení dat u konkrétního poskytovatele tyto povinnosti ilustruje; limity jeho produktu nejsou univerzálními limity jiné databáze.

Související rozhodnutí

Výkonnostní testování · Hosting · Data · Provoz · Architektura

Primární zdroje

observability · azure-cache-aside · azure-data-partitioning · postgres-isolation