Sdílet prostřednictvím


Provedení inteligentního ladění v Azure Database for PostgreSQL

PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL

Flexibilní server Azure Database for PostgreSQL má inteligentní funkci ladění, která je navržená tak, aby automaticky zlepšila výkon a pomohla zabránit problémům. Inteligentní ladění nepřetržitě monitoruje stav flexibilní serverové databáze Azure Database for PostgreSQL a dynamicky přizpůsobuje databázi vaší úloze.

Tato funkce zahrnuje dvě funkce automatického ladění:

  • Ladění automatického úklidu: Tato funkce sleduje poměr bloat a odpovídajícím způsobem upravuje nastavení automatického úklidu. Ovlivňuje aktuální i predikované využití prostředků, aby se zabránilo přerušení úloh.
  • Ladění zápisů: Tato funkce monitoruje objem a vzory operací zápisu a upravuje parametry, které ovlivňují výkon zápisu. Tyto úpravy zlepšují výkon systému i spolehlivost, aby proaktivně odvrátily potenciální komplikace.

Inteligentní ladění můžete povolit pomocí webu Azure Portal nebo Azure CLI.

Proč inteligentní ladění?

Proces automatického úklidu je důležitou součástí údržby stavu a výkonu flexibilní serverové databáze Azure Database for PostgreSQL. Pomáhá uvolnit úložiště obsazené "mrtvými" řádky, uvolnit místo a udržet databázi běžet hladce.

Stejně důležité je ladění operací zápisu v databázi. Tato úloha obvykle spadá do správců databáze. Neustálé monitorování databáze a jemně dolaďovacích operací zápisu může být náročné a časově náročné. Když pracujete s více databázemi, stává se tento úkol stále složitější.

Tady se nachází inteligentní ladění kroků. Místo ručního dohledování a ladění databáze můžete použít inteligentní ladění k automatickému monitorování a ladění databáze. Pak se můžete zaměřit na další důležité úkoly.

Funkce automatického ladění v inteligentním ladění sleduje poměr bloat a upravuje nastavení podle potřeby pro optimální využití prostředků. Aktivně spravuje proces čištění databáze a snižuje problémy s výkonem, které můžou způsobit zastaralá data.

Funkce ladění zápisů sleduje množství a transakční vzory operací zápisu. Inteligentně upravuje parametry, jako bgwriter_delayjsou , checkpoint_completion_target, max_wal_sizea min_wal_size. Tím zvyšuje výkon a spolehlivost systému, a to i při vysokých zatíženích zápisu.

Pokud používáte inteligentní ladění, můžete ušetřit cenný čas a prostředky tím, že se spoléháte na flexibilní server Azure Database for PostgreSQL, abyste zachovali optimální výkon vašich databází.

Jak inteligentní ladění funguje?

Inteligentní ladění je průběžný proces monitorování a analýzy, který se nejen dozví o vlastnostech vaší úlohy, ale také sleduje aktuální zatížení a využití prostředků, jako je procesor nebo IOPS. Neruší normální provoz úloh vaší aplikace.

Tento proces umožňuje databázi dynamicky přizpůsobovat úlohy díky rozlišení aktuálního poměru bloudů, výkonu zápisu a efektivity kontrolních bodů ve vaší instanci. Díky těmto přehledům inteligentní ladění nasadí akce ladění, které zlepšují výkon vaší úlohy a zabraňují potenciálním nástrahám.

Ladění automatického úklidu

Inteligentní ladění upravuje pět parametrů souvisejících s automatickým úklidem: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_threshold, a autovacuum_vacuum_cost_delay. Tyto parametry regulují součásti, například:

  • Zlomek tabulky, která nastavuje VACUUM proces.
  • Limit zpoždění na základě nákladů.
  • Interval pozastavení mezi spuštěním automatického úklidu.
  • Minimální početaktualizovaných VACUUM
  • Doba pozastavení mezi vyčistit se zaokrouhlí.

Důležité

Inteligentní ladění upravuje parametry související s automatickým úklidem na úrovni serveru, ne na jednotlivých úrovních tabulky. Pokud je automatické úklid vypnuté, inteligentní ladění nemůže správně fungovat. Aby bylo možné optimalizovat proces inteligentní ladění, musí být povolená funkce automatického úklidu.

I když démon autovacuum aktivuje dvě operace (VACUUM a ANALYZE), inteligentní ladění jemná ladění pouze procesu VACUUM . Tato funkce v současné době neupravuje ANALYZE proces, který shromažďuje statistiky o obsahu tabulky, což pomáhá plánovači dotazů flexibilního serveru Azure Database for PostgreSQL zvolit nejvhodnější plán provádění dotazů.

Inteligentní ladění zahrnuje záruky pro měření využití prostředků, jako je procesor a IOPS. Pokud je vaše instance pod velkým zatížením, nezvýší se aktivita automatického úklidu. Inteligentní ladění tak zajišťuje rovnováhu mezi efektivními operacemi čištění a celkovým výkonem systému.

Když inteligentní ladění optimalizuje autovacuum, považuje průměrné nafouknutí serveru pomocí statistik o živých a mrtvých řazených řazených kolekcí členů. Pokud chcete snížit bloudění, inteligentní ladění může snížit parametry, jako je měřítko nebo naptime. Proces může aktivovat VACUUM dříve a v případě potřeby snížit zpoždění mezi zaokrouhlením.

Na druhou stranu, pokud je bloudění minimální a proces automatického úklidu je příliš agresivní, inteligentní ladění může zvýšit parametry, jako je zpoždění, faktor měřítka a naptime. Tento zůstatek minimalizuje bloud a pomáhá zajistit, aby proces automatického úklidu efektivně používal prostředky.

Ladění zápisů

Inteligentní ladění upravuje čtyři parametry související s laděním zápisů: bgwriter_delay, checkpoint_completion_target, max_wal_sizea min_wal_size.

Parametr bgwriter_delay určuje frekvenci, s jakou se proces zápisu na pozadí probouzí, aby se vyčistily "špinavé" vyrovnávací paměti (vyrovnávací paměti, které jsou nové nebo upravené). Proces zápisu na pozadí je jedním ze tří procesů na flexibilním serveru Azure Database for PostgreSQL, který zpracovává operace zápisu. Druhým je proces kontrolního bodu a zápisy back-endu (standardní klientské procesy, jako jsou připojení aplikací).

Primární rolí procesu zápisu na pozadí je zmírnit zatížení z hlavního procesu kontrolního bodu a snížit zatížení back-endových zápisů. Parametr bgwriter_delay řídí frekvenci zapisovačů pozadí. Úpravou tohoto parametru můžete také optimalizovat výkon dotazů DML (Data Manipulation Language).

Parametr checkpoint_completion_target je součástí druhého mechanismu zápisu, který flexibilní server Azure Database for PostgreSQL podporuje, konkrétně proces kontrolního bodu. Kontrolní body probíhají v konstantních intervalech, které checkpoint_timeout definují (pokud nejsou vynuceny překročením nakonfigurovaného prostoru). Aby se zabránilo přetížení vstupně-výstupního systému se nárůstem zápisů stránky, zápis zašpiněných vyrovnávacích pamětí během kontrolního bodu je rozložen po určitou dobu. Parametr checkpoint_completion_target řídí tuto dobu trvání pomocí checkpoint_timeout k určení doby trvání jako zlomku intervalu kontrolního bodu.

Výchozí hodnota checkpoint_completion_target je 0,9 (od PostgreSQL 14). Tato hodnota obecně funguje nejlépe, protože rozšiřuje zatížení vstupně-výstupních operací do maximálního časového období. Ve výjimečných případech se kontrolní body nemusí dokončit včas kvůli neočekávaným výkyvům v počtu potřebných segmentů protokolování s předstihem (WAL). Potenciální dopad na výkon je důvodem, proč checkpoint_completion_target je cílovou metrikou inteligentního ladění.

Omezení a známé problémy

  • Inteligentní ladění provádí optimalizace pouze v konkrétních rozsazích. Je možné, že funkce nebude provádět žádné změny.
  • Inteligentní ladění neupravuje ANALYZE nastavení.
  • Ladění automatického úklidu se v současné době podporuje pro výpočetní úrovně serveru pro obecné účely a optimalizováno pro paměť, které mají čtyři nebo více virtuálních jader. Výpočetní úroveň nárazového serveru není podporována.

Další kroky