Monitorování a konfigurace databázového serveru

Dokončeno

Jakmile společnost migruje své místní databáze do Služby Azure Database for MySQL/PostgreSQL, stále potřebují způsob, jak monitorovat výkon.

Jako vývojář databáze jste použili k používání nástrojů specifických pro databáze a monitorování místních virtuálních počítačů. Teď, když jsou vaše databáze spuštěné v Azure, můžete využít portál k monitorování všech různých databází pomocí jediného nástroje.

V této lekci se podíváme na to, jak vás Azure Monitor může podporovat při monitorování stavu databází, za které zodpovídáte. Jakmile odhalíte problémy, uvidíte, jak změnit konfiguraci databází a vyřešit problémy.

Použití služby Azure Monitor k zobrazení stavu databází

Pomocí služby Azure Monitor můžete sledovat využití prostředků ve službě Azure Database for MySQL/PostgreSQL. Stránka Metriky pro váš server na webu Azure Portal umožňuje vytvářet grafy, které pomáhají zjišťovat trendy v výkonu a odhalit anomálie.

Metriky pro Azure Database for MySQL/PostgreSQL

Metriky dostupné pro monitorování serveru spadají do čtyř širokých kategorií:

  • Metriky úložiště
  • metriky Připojení ion
  • Metriky využití prostředků zpracování dat
  • Metriky replikace

Metriky úložiště

Metriky úložiště sledují celkovou velikost databází na serveru (využité úložiště) a aktuální velikost místa úložiště na serveru (limit úložiště). V aktivním systému pravděpodobně zjistíte, že metrika použitá pro úložiště v průběhu času roste. Pokud máte pro server vybranou možnost automatického růstu, metrika limitu úložiště se občas zvyšuje, protože se snižuje množství volného místa. Při každém poklesu volného místa pod 5 % aktuálního využití se přidá dodatečné úložiště. Pomocí metriky procent úložiště můžete zobrazit poměr využitého místa k uvolnění místa na serveru.

Pokud váš server pravidelně tráví čas zvyšováním úložiště, zvažte ruční přiřazení více místa. Uděláte to na webu Azure Portal tak , že vyberete stránku Cenová úroveň pro váš server a použijete posuvník Úložiště . Mějte na paměti, že se vám za úložiště účtují poplatky, takže nenastavujte úložiště, které je k dispozici na vysoké úrovni.

Metrika Využité úložiště zálohování ukazuje, kolik místa vaše zálohy pobírají. Tato metrika je důležitá z hlediska nákladů. Za úložiště zálohování se vám neúčtují žádné poplatky, protože zůstane pod velikostí prostoru úložiště přiděleného vašemu serveru (jak je určeno cenovou úrovní). Když překročíte tento limit, účtují se vám poplatky za úložiště zálohování.

metriky Připojení ion

Metrika Aktivní připojení ukazuje, kolik souběžných připojení server aktuálně podporuje. To nemusí být stejné jako počet souběžných uživatelů v závislosti na tom, jestli jste nakonfigurovali jakýkoli typ sdružování připojení. Azure Database for MySQL/PostgreSQL v současné době neposkytuje žádné možnosti sdružování připojení, ale k implementaci této funkce můžete použít proxy službu, jako je PgBouncer* (for PostgreSQL). Další informace najdete v tématu Osvědčené postupy z hlediska výkonu při používání služby Azure Database for PostgreSQL – Připojení ion Pooling.

Metrika neúspěšných připojení ukazuje, jak často uživatelé zobrazili neplatné přihlašovací údaje. Velký počet těchto událostí za krátkou dobu může značit útok hrubou silou.

Metriky využití prostředků zpracování dat

Tyto metriky vám pomůžou sledovat, jak váš server zpracovává úlohy.

Metrika procent procesoru ukazuje, jak je procesor zaneprázdněn. Vysoké využití procesoru není problém, pokud se v průběhu času nezvyšuje. Využití procesoru, které je více než 90 % a stále roste, značí, že se váš systém blíží kapacitě zpracování. Měli byste zvážit vertikální navýšení kapacity na cenovou úroveň s více prostředky.

Metrika Procent paměti označuje obsazenost paměti. Azure Database for MySQL/PostgreSQL používá paměť pro ukládání dat do mezipaměti a ke spouštění procesů iniciovaných jednotlivými požadavky klienta. Vysoké využití paměti není problém, dokud se nestane nadměrným, obvykle přes 95 %, v závislosti na skutečném množství dostupné paměti. Velmi nízká dostupnost paměti může způsobit selhání připojení a nízký výkon kvůli fragmentaci paměti. Tuto metriku byste měli monitorovat, abyste zjistili, jestli kapacita paměti v průběhu času roste, a odpovídajícím způsobem škálovat server.

Metrika procent vstupně-výstupních operací sleduje množství aktivity disku prováděné serverem. V ideálním případě by tato hodnota měla být co nejnižší. Vstupně-výstupní operace disku je pomalá operace. Vysoká hodnota pro tuto metriku ve spojení s vysokou hodnotou pro procento paměti může znamenat, že server nemá dostatek prostředků pro efektivní ukládání dat do mezipaměti a místo toho musí číst a zapisovat data do diskového úložiště. Stupeň vstupně-výstupní aktivity je nevyhnutelné, protože vaše data musí být v určitém okamžiku trvale uložena na disku a transakční protokoly musí být zachovány. Ve většině databázových serverů se tento zápis provádí samostatným procesem nebo vláknem, které běží asynchronně.

Metriky síťových vstupů a odchozích přenosů ukazují objem provozu při vstupu na server a ukončení mezi aktivními připojeními. Omezení těchto obrázků jsou určena šířkou pásma cesty mezi klientskými aplikacemi a serverem.

Metriky replikace

Azure Database for PostgreSQL poskytuje metriky Max Lag Across Replicas (Max Lag Across Replicas) a Replica Lag (Prodleva replik), které vám pomůžou určit, jak aktuální jsou všechny repliky. Tyto metriky jsou smysluplné jenom v případě, že jste nakonfigurovali repliky jen pro čtení.

Metrika Max Lag Across Replicas ukazuje, kolik bajtů je nejpomalejší replika za hlavním serverem. Tuto metriku můžete monitorovat jenom z hlavního serveru.

Metrika Replica Lag zobrazuje čas v sekundách, protože poslední transakce byla přijata z hlavního serveru a použita na repliku. Tato metrika dává smysl jenom při prohlížení na replice.

Azure Database for MySQL má prodlevu replikace v sekundách . Tato metrika, kterou můžete monitorovat pouze z repliky, ukazuje počet sekund, o které replika za hlavním serverem zaostává.

Vytváření grafů a upozornění pro monitorování výkonu

Stránka Metriky pro server na webu Azure Portal umožňuje vytvářet grafy, které sledují hodnoty metrik. Metriky se shromažďují v minutových intervalech. Pro každou metriku zadáte agregaci, která určuje, jak tuto metriku hlásit.

  • Průměr vygeneruje průměrnou hodnotu metriky za každou minutu.
  • Maximum ukazuje maximální hodnotu dosaženou během každé minuty.
  • Minimum zobrazuje nejmenší hodnotu.
  • Součet součtů metriky
  • Počet ukazuje, kolikrát událost generující metriku generuje.

Ne všechny agregace jsou nutně smysluplné pro každou metriku.

Následující ukázkový graf zachytil průměrné hodnoty minut po minutách pro metriky procesoru, procent paměti, vstupně-výstupních operací a aktivních připojení. Uvidíte, že všechna souběžně spuštěná 101 aktivních připojení. Využití procesoru a paměti je stabilní a procento vstupně-výstupních operací je 0. V tomto příkladu klientské aplikace provádějí úlohy náročné na čtení a potřebná data se ukládají do mezipaměti.

Image of the chart showing the values captured for the CPU percent, Memory percent, IO percent, and Active connections metrics

Všimněte si, že mezi zachycenými metrikami a výsledky zobrazenými v grafu je prodleva až pět minut.

Pokud metrika indikuje, že prostředek dosahuje kritického bodu, můžete nastavit upozornění, které upozorní správce. Následující příklad pošle správci e-mail, pokud využití paměti překročí 90 procent.

Image of the alerts page, showing a new alert that sends an email if memory utilization exceeds 90%

Konfigurace serverových parametrů

Nativní servery MySQL a PostgreSQL jsou vysoce konfigurovatelné, protože obě používají nastavení konfigurace uložené v souborech parametrů. Pro PostgreSQL se tyto informace uchovávají v souboru postgresql.conf . Pro MySQL se konfigurační data ukládají v různých souborech my.cnf . Ve službě Azure Database for MySQL/PostgreSQL nemáte přímý přístup k těmto souborům. Místo toho můžete zobrazit a upravit parametry serveru pomocí webu Azure Portal nebo Azure CLI.

Zobrazení a nastavení parametrů pomocí webu Azure Portal

Konfigurační parametry serveru jsou k dispozici na stránce Parametry serveru pro váš server na webu Azure Portal. Hodnoty parametrů můžete upravit podle potřeby pro váš server. Následující obrázek ukazuje stránku parametrů serveru pro Službu Azure Database for PostgreSQL. Odpovídající stránka pro Azure Database for MySQL je podobná.

Image of the Server parameters page for Azure Database for PostgreSQL

Ne všechny parametry konfigurace serveru jsou dostupné, protože velkou část konfigurace serveru řídí Azure. Například chybí parametry přidružené k přidělení paměti. Kromě toho Azure Database for MySQL nepodporuje úložiště ISAM, takže tam nejsou parametry myisam .

Změny parametrů, které jsou označené jako Dynamické , se projeví okamžitě. Parametry označené jako Statické vyžadují restartování serveru. Provedete to na stránce Přehled vašeho serveru.

Image of the Overview page for Azure Database for PostgreSQL. The Restart button is highlighted

Zobrazení a nastavení parametrů pomocí Azure CLI

Parametry můžete zobrazit a upravit programově pomocí az mysql/postgres server configuration příkazů. Zobrazte nastavení každého parametru konfigurace s parametrem az mysql/postgres server configuration lista domovskou částí jednoho parametru pomocí az mysql/postgres server configuration show [parameter-name]. Následující fragment kódu ukazuje příklad pro Azure Database for PostgreSQL:

az postgres server configuration show \
    --resource-group northwindrg \
    --server-name northwind101 \
    --name vacuum_defer_cleanup_age

Výsledek by měl vypadat nějak takto:

{
  "allowedValues": "0-1000000",
  "dataType": "Integer",
  "defaultValue": "0",
  "description": "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.",
  "id": "**********************",
  "name": "vacuum_defer_cleanup_age",
  "resourceGroup": "northwindrg",
  "source": "system-default",
  "type": "Microsoft.DBforPostgreSQL/servers/configurations",
  "value": "0"
}

Důležitou položkou ve výstupu je pole hodnoty , které zobrazuje aktuální nastavení parametru.

az mysql/postgres server configuration set Pomocí příkazu změňte hodnotu parametru konfigurace následujícím způsobem:

az postgres server configuration set \
    --resource-group northwindrg \
    --server-name northwind101 \
    --name vacuum_defer_cleanup_age \
    --value 5

Pokud po změně statického parametru potřebujete restartovat server, spusťte az mysql/postgres server restart příkaz:

az postgres server restart \
    --resource-group northwindrg \
    --name northwind101