Doporučení pro průběžnou optimalizaci výkonu
Platí pro toto doporučení kontrolního seznamu efektivity výkonu rozhraní Azure Well-Architected Framework:
PE:12 | Nepřetržitě optimalizujte výkon. Zaměřte se na komponenty, které vykazují postupně se zhoršující výkon, jako jsou databáze a síťové funkce. |
---|
Tato příručka popisuje doporučení pro průběžnou optimalizaci výkonu. Nepřetržitá optimalizace výkonu je proces neustálého monitorování, analýzy a zlepšování efektivity výkonu. Efektivita výkonu se přizpůsobuje nárůstu a poklesu poptávky. Optimalizace výkonu musí být průběžnou aktivitou po celou dobu životnosti úlohy. Výkon úloh se v průběhu času často snižuje nebo se stává nadměrným a mezi faktory, které je potřeba vzít v úvahu, patří změny ve vzorcích využití, poptávce, funkcích a technickém dluhu.
Definice
Období | Definice |
---|---|
Vrstvení dat | Strategie úložiště, která zahrnuje kategorizaci dat na základě jejich četnosti přístupu a jejich odpovídající ukládání do úrovní úložiště. |
Technický dluh | Kumulované nefektivnosti, neoptimální volby návrhu nebo zkratky záměrně pořízené během procesu vývoje za účelem rychlejšího doručování kódu. |
TTL (TTL) | Mechanismus, který nastavuje čas vypršení platnosti dat. |
Klíčové strategie návrhu
Efektivita výkonu je, když se kapacita úloh přizpůsobí skutečnému využití. Úloha, která přetíží výkon, je stejně problematická jako úloha, která nedosáhá. Kompromisy se liší. Nadměrná efektivita ovlivňuje optimalizaci nákladů. Nízký výkon má vliv na uživatele. Klíčem k efektivitě výkonu je monitorování, úpravy a testování v průběhu času. Musíte pravidelně kontrolovat metriky výkonu a podle potřeby provádět úpravy, abyste zajistili efektivitu úloh. K dosažení cílů výkonu se vyžaduje testování všech změn před a po implementaci.
Vývoj kultury výkonu
Kultura výkonu je prostředí, ve kterém se očekává průběžné vylepšování a tým se učí z produkčního prostředí. Optimalizace výkonu vyžaduje specializované dovednosti. Týmy úloh potřebují správné dovednosti a myšlení, aby optimalizovaly svůj výkon, aby uspokojily rostoucí a snižující se poptávku. Musíte také vyhradit čas na podporu požadovaného monitorování a nápravy problémů s výkonem, když k nim dojde. Tyto týmy potřebují jasná očekávání. Například výkonnostní cíle, směrné plány a prahové hodnoty odchylek (jak daleko od směrného plánu jsou přijatelné) musí být vysoce viditelné a socializované.
Kompromis: Průběžné optimalizace výkonu vyžadují tým, který má správné dovednosti a čas najít a opravit problémy s výkonem. Oddělení pracovníků na výkon zvyšuje provozní náklady. Pokud máte omezené personální prostředky, průběžná optimalizace výkonu může nějakou dobu trvat mimo jiné provozní úlohy.
Vyhodnocení nových funkcí platformy
Vyhodnocení nových funkcí platformy zahrnuje prozkoumání nových funkcí a nástrojů platformy, které můžou zvýšit efektivitu výkonu, jako jsou optimalizovaná řešení úložiště, mechanismy ukládání do mezipaměti nebo nástroje pro správu prostředků. Nové funkce platformy mohou otevřít cesty pro zvýšení efektivity výkonu. Udržujte svou platformu a nástroje aktuální, abyste měli jistotu, že používáte nejnovější inovace a osvědčené postupy. Konzistentně monitorujte zpětnou vazbu a metriky výkonu od těchto nových doplňků a upřesněte svůj přístup.
Stanovení priorit při optimalizaci
Proaktivní optimalizace výkonu znamená přijetí proaktivních opatření ke zlepšení a zvýšení výkonu úloh před tím, než dojde k problémům s výkonem. Použití proaktivních opatření zahrnuje identifikaci potenciálních kritických bodů, monitorování metrik výkonu a implementaci optimalizací, aby se zajistilo, že úloha funguje efektivně a splňuje požadované cíle výkonu. Na základě analýzy zhoršujících komponent, kritických toků a technického dluhu můžete implementovat optimalizace výkonu specifické pro každou oblast. Vylepšení můžou zahrnovat změny kódu, úpravy infrastruktury nebo aktualizace konfigurace.
Stanovení priority pro zhoršující komponenty
Úloha má často komponenty, jako jsou databáze a síťové komponenty, které jsou náchylné ke snížení výkonu v průběhu času. S tím, jak se zatížení vyvíjí a mění se vzorce využití, tyto změny často ovlivňují výkon jednotlivých komponent v úloze. Větší objem dat v databázích může vést k delší době běhu dotazů a pomalejšímu načítání dat. Změny ve vzorech použití můžou vést k neoptimálnímu návrhu dotazů. Dotazy, které byly kdysi efektivní, se můžou stát neefektivními s tím, jak se zatížení vyvíjí. Neefektivní dotazy můžou spotřebovávat nadměrné množství prostředků a snižovat výkon databáze. Zvýšené využití úloh může vést k vyššímu síťovému provozu a způsobit problémy s zahlcením a latencí.
Je důležité neustále usilovat o optimalizaci výkonu těchto komponent. Proaktivně identifikujte a vyřešte problémy s výkonem úloh. Stanovením priorit známých zhoršujících komponent můžete proaktivně řešit potenciální problémy s výkonem a zajistit bezproblémový provoz úloh. Může zahrnovat implementaci technik ladění výkonu, optimalizaci přidělení prostředků nebo upgrade hardwarových nebo softwarových komponent podle potřeby.
Stanovení priorit kritických toků
Kritické toky jsou nejdůležitější procesy nebo pracovní postupy s nejvyšší prioritou v rámci úlohy. Stanovením priority těchto kritických toků zajistíte, že nejdůležitější části úloh jsou optimalizované z hlediska výkonu. Když budete vědět, které toky jsou důležité, můžete určit prioritu optimalizačního úsilí. Optimalizace efektivity výkonu nejdůležitějších oblastí vaší aplikace poskytuje nejvyšší návratnost investic. Měli byste monitorovat důležité toky a nejoblíbenější stránky. Hledejte způsoby, jak je zefektivnit.
Automatizace optimalizace výkonu
Automatizace může eliminovat opakované a časově náročné ruční procesy a umožnit jejich efektivní provedení. Automatizace snižuje riziko lidské chyby a zajišťuje konzistenci při spouštění optimalizačních úloh. Automatizací těchto úkolů můžete také uvolnit lidi, aby se mohli soustředit na složitější aktivity a aktivity, které přidávají hodnotu. Automatizaci můžete použít u různých úloh, jako je testování výkonu, nasazení a monitorování:
Automatizované testování výkonu: K simulaci různých úloh a scénářů použijte automatizované nástroje pro testování výkonu, jako jsou JMeter, K6 nebo Selenium.
Automatizované nasazení: Implementujte automatizované procesy nasazení, abyste zajistili konzistentní nasazení bez chyb. K automatizaci procesu nasazení použijte nástroje CI/CD. Tyto nástroje vám můžou pomoct identifikovat kritické body výkonu při jejich použití k testování proti koncovým bodům, kontrole stavu HTTP a dokonce i k ověření kvality a variací dat.
Monitorování a upozorňování: Nastavte automatizované systémy monitorování a upozorňování, které budou nepřetržitě monitorovat metriky výkonu a zjišťovat případné odchylky nebo anomálie. Při zjištění problémů s výkonem se můžou aktivovat automatizovaná upozornění, která upozorní příslušné týmy nebo jednotlivce.
Správa incidentů: Implementujte automatizovaný systém pro správu incidentů, který může přijímat výstrahy, vytvářet lístky a přiřazovat lístky příslušným týmům k vyřešení. Tyto kroky pomáhají zajistit, aby se problémy s výkonem rychle vyřešily a přiřadily ke správným prostředkům.
Automatizovaná diagnostika: Vyvíjejte automatizované diagnostické nástroje nebo skripty, které můžou analyzovat data o výkonu a identifikovat původní příčiny problémů s výkonem. Tyto nástroje vám můžou pomoct určit konkrétní oblasti nebo součásti systému, které způsobují problémy s výkonem.
Automatizované nápravné akce: Definujte a implementujte automatizované nápravné akce, které se můžou aktivovat při zjištění konkrétních problémů s výkonem. Mezi tyto akce patří restartování služeb, úprava přidělení prostředků, vymazání mezipamětí nebo implementace dalších technik optimalizace výkonu.
Samoopravené systémy: Zabudujte do systému funkce samoopravení tím, že automatizujete proces obnovení pro známé problémy s výkonem. Tato funkce může zahrnovat automatickou opravu nebo úpravu konfigurace systému za účelem obnovení optimálního výkonu.
Řešení technického dluhu
Technický dluh označuje kumulované nedostatky, neoptimální volby návrhu nebo zkratky pořízené během procesu vývoje, které můžou mít vliv na výkon. Technický dluh, nejasný kód a příliš složité implementace můžou ztížit dosažení efektivity výkonu. Řešení technického dluhu zahrnuje identifikaci a řešení těchto problémů za účelem zlepšení celkového výkonu a udržovatelnosti úloh. Tato práce může zahrnovat refaktoring kódu, optimalizaci databázových dotazů, vylepšení návrhu architektury nebo implementaci osvědčených postupů. Možná jste zavedli technický dluh, abyste splnili termín, ale při optimalizaci efektivity výkonu v průběhu času potřebujete tento technický dluh vyřešit.
Optimalizace databází
Nepřetržitá optimalizace databází zahrnuje identifikaci a implementaci optimalizací, které zajistí, aby databáze zvládly zatížení, poskytovaly rychlou dobu odezvy a minimalizovaly využití prostředků. Pravidelnou optimalizací databází můžete zlepšit výkon aplikace, snížit prostoje a zlepšit celkové uživatelské prostředí.
Optimalizace databázových dotazů: Špatně napsané příkazy SQL můžou snížit výkon databáze. Neefektivní podmínky join můžou způsobit nepotřebné zpracování dat. Složité poddotazy, vnořené dotazy a nadměrné množství funkcí můžou snížit rychlost běhu. Dotazy, které načítají příliš mnoho dat, by se měly přepsat. Měli byste identifikovat nejběžnější nebo nejdůležitější databázové dotazy a optimalizovat je. Optimalizace pomáhá zajistit rychlejší dotazy.
Udržovat indexy: Vyhodnoťte strategii indexování a ujistěte se, že jsou indexy správně navržené a udržované. Údržba indexu zahrnuje identifikaci nepoužívaných nebo redundantních indexů a vytváření indexů, které odpovídají vzorům dotazů. Indexy databáze pomáhají urychlit operace načítání dat. U relačních databází je potřeba monitorovat fragmentaci indexů. Indexy byste měli pravidelně znovu sestavovat nebo reorganizovat. U nerelačních databází je potřeba vybrat správnou zásadu indexování pro vaši úlohu. Pokud je k dispozici, použijte automatické ladění v databázích. Mezi tyto funkce patří automatické vytváření chybějících indexů, odstraňování nepoužívaných indexů a opravy plánů. Další informace najdete v tématu Údržba indexů za účelem zvýšení výkonu.
Kontrola návrhu modelu: Zkontrolujte datový model a ujistěte se, že ho optimalizujete pro konkrétní požadavky aplikace. Zlepšení výkonu dotazů a načítání dat může zahrnovat denormalizaci, dělení nebo jiné techniky.
Optimalizace konfigurace databáze: Optimalizujte nastavení konfigurace databáze, jako je přidělení paměti, vstupně-výstupní operace disku a nastavení souběžnosti, abyste maximalizovali výkon a využití prostředků.
Optimalizace efektivity dat
Optimalizace efektivity dat je proces, který zajišťuje, aby se data ukládaly, zpracovávaly a přistupovaly co nejefektivněji. Vrstvení dat a používání hodnoty TTL (Time-to-Live) jsou techniky, které je možné použít k optimalizaci efektivity dat. Tyto techniky můžete použít v různých scénářích úložiště dat, jako jsou databáze, systémy souborů nebo úložiště objektů.
Použití vrstvení dat: Vrstvení dat zahrnuje kategorizaci dat na základě jejich důležitosti nebo četnosti přístupu a ukládání dat v různých vrstvách odpovídajícím způsobem. Nastavení vrstvení dat umožňuje efektivnější využití prostředků úložiště a zvyšuje výkon. Často přístupná nebo kritická data můžou být uložena na úrovních s vysokým výkonem, zatímco méně často přístupná nebo méně důležitá data se dají ukládat na úrovních s nižšími náklady. Cílem je zkontrolovat využití dat v průběhu času, abyste měli jistotu, že jsou data ve správné vrstvě. S tím, jak se mění priority dat, by se data měla přesouvat z jedné vrstvy na jinou.
Implementace funkce time-to-live: Funkce Time-to-Live je mechanismus, který nastavuje čas vypršení platnosti dat. Funkce Time-to-Live umožňuje automatické odstranění nebo archivaci dat po určité době, což snižuje požadavky na úložiště a zlepšuje správu dat. Nastavením vhodného časového limitu umožníte odebrání nepotřebných dat, uvolnění místa v úložišti a zlepšení celkové efektivity. Data relace, dočasné soubory a data mezipaměti jsou častými cíli pro čas-to-live. Položky databáze můžou mít také čas-to-live.
Riziko: Příliš krátká doba života může způsobovat problémy s výkonem.
Usnadnění Azure
Automatizace optimalizace výkonu: Azure Advisor poskytuje doporučení k automatickému výkonu na základě telemetrie úloh. Tato doporučení byste měli pravidelně kontrolovat a řešit. Azure Monitor poskytuje přehled o výkonu systému v reálném čase a umožňuje nastavit upozornění na základě konkrétních metrik výkonu. Azure Log Analytics poskytuje automatizovanou diagnostiku a analýzu shromážděných protokolů a metrik. Nástroje jako Aplikace Azure Insights poskytují přehledy a doporučení pro optimalizaci výkonu.
Pokud chcete automatizovat nápravu, použijte automatizační nástroje nebo skripty k automatickému spouštění akcí nápravy při aktivaci výstrah. Můžete použít Azure Automation, Azure Functions nebo vlastní řešení automatizace.
Azure umožňuje testování výkonu k simulaci různých uživatelských scénářů a úloh. Automatizované testování vám může pomoct identifikovat kritické body výkonu a odpovídajícím způsobem optimalizovat váš systém. Nástroje, jako je Azure DevOps, můžou automatizovat testování výkonu.
Optimalizace databází: Produktová řada SQL obsahuje řadu předdefinovaných funkcí , které umožňují monitorovat a opravovat výkon databáze SQL. Tyto funkce byste měli použít k udržení výkonu databáze. Azure SQL Database má funkci automatického ladění, která nepřetržitě monitoruje a vylepšuje dotazy. Tuto funkci byste měli použít k automatickému vylepšování dotazů SQL.
Zásady indexování si můžete přizpůsobit pomocí funkcí služby Azure Cosmos DB. Přizpůsobte si zásady tak, aby splňovaly požadavky na výkon vašich úloh.
Optimalizace efektivity dat: Vrstvení dat umožňuje ukládat data na různých úrovních na základě jejich četnosti přístupu a důležitosti. Pomáhá optimalizovat náklady na úložiště a výkon. Azure poskytuje různé úrovně úložiště, například horkou, studenou a archivní úroveň pro data objektů blob. Horké úrovně jsou optimalizované pro často využívaná data, studené vrstvy jsou určené pro zřídka využívaná data a archivní vrstvy jsou určené pro zřídka přístupná data. Použitím úrovně přístupu k úložišti, která je nejvhodnější pro vaše data, můžete zajistit efektivní ukládání a načítání dat.
Související odkazy
- Optimalizace údržby indexů za účelem zvýšení výkonu dotazů a snížení spotřeby prostředků
- Zlepšení výkonu aplikací Azure pomocí Azure Advisoru
- Automatické ladění v Azure SQL Database a Azure SQL Managed Instance
- Zásady indexování ve službě Azure Cosmos DB
Kontrolní seznam efektivity výkonu
Projděte si kompletní sadu doporučení.