sql >> Databáze >  >> RDS >> Mysql

Co sledovat v MySQL 8.0

Monitorování je nutností ve všech prostředích a databáze nejsou výjimkou. Jakmile budete mít svou databázovou infrastrukturu zprovozněnou, budete muset mít přehled o tom, co se děje. Monitorování je nutností, pokud si chcete být jisti, že vše probíhá v pořádku, ale také pokud provádíte nezbytné úpravy, zatímco váš systém roste a vyvíjí se. To vám umožní identifikovat trendy, plánovat upgrady nebo vylepšení nebo adekvátně reagovat na jakékoli problémy nebo chyby, které mohou nastat s novými verzemi, různými účely a tak dále.

Pro každou databázovou technologii je třeba monitorovat různé věci. Některé z nich jsou specifické pro databázový stroj, dodavatele nebo dokonce konkrétní verzi, kterou používáte. Databázové clustery silně závisí na základní infrastruktuře, takže statistiky sítě a provozu jsou zajímavé také pro administrátory databází.

Při provozování více databázových systémů může být sledování těchto systémů docela oříšek.

V tomto blogu se podíváme na to, co potřebujete k monitorování prostředí MySQL 8.0. Podíváme se také na funkce monitorování řízení clusteru, které vám mohou pomoci zdarma sledovat stav vašich databází.

Monitorování OS a databázového systému

Při pozorování databázového clusteru nebo uzlu je třeba vzít v úvahu dva hlavní body:operační systém a samotnou instanci MySQL. Budete muset definovat, které metriky budete sledovat z obou stran a jak to budete dělat. Parametr musíte vždy sledovat ve smyslu vašeho systému a měli byste hledat změny v modelu chování.

Mějte na paměti, že když je ovlivněn jeden z vašich parametrů, může to mít vliv i na ostatní, takže řešení problému je složitější. Mít řádný monitorovací a výstražný systém je zásadní pro to, aby byl tento úkol co nejjednodušší.

Ve většině případů budete muset použít nějaké nástroje, protože je obtížné najít takový, který by pokryl všechny požadované metriky.

Monitorování systému OS

Jednou hlavní věcí (která je společná všem databázovým strojům a dokonce i všem systémům) je sledování chování operačního systému. Zde je několik bodů ke kontrole. Níže naleznete nejlepší systémové prostředky ke sledování na databázovém serveru. Je to vlastně také seznam úplně prvních věcí, které je třeba zkontrolovat.

Využití CPU

Vysoké využití procesoru není špatné, pokud nedosáhnete limitu. Pokud se nejedná o obvyklé chování, může být problémem nadměrné procento využití procesoru. V tomto případě je nezbytné identifikovat proces/procesy, které tento problém generují. Pokud je problém v procesu databáze, budete muset zkontrolovat, co se děje uvnitř databáze.

Využití paměti RAM nebo SWAP

V ideálním případě by měla být celá databáze uložena v paměti, ale není to vždy možné. Dejte MySQL tolik, kolik si můžete dovolit, ale ponechte dostatek pro fungování ostatních procesů.

Pokud vidíte vysokou hodnotu této metriky a ve vašem systému se nic nezměnilo, pravděpodobně budete muset zkontrolovat konfiguraci databáze. Parametry jako shared_buffers a work_mem to mohou ovlivnit přímo, protože definují množství paměti, kterou lze použít pro databázi MySQL. Swap je pouze pro případ nouze a neměl by se používat, ujistěte se, že máte také nastavený operační systém, aby o použití swapu rozhodovalo MySQL.

Využití disku 

Využití disku je jednou z klíčových metrik ke sledování a upozornění. Ujistěte se, že máte vždy volné místo pro nová data, dočasné soubory, snímky nebo zálohy.

Sledování tvrdých hodnot metrik není dost dobré. Nezvyklé zvýšení využití místa na disku nebo nadměrná spotřeba přístupu na disk je zásadní věcí, kterou je třeba sledovat, protože můžete mít vysoký počet chyb zaznamenaných v souboru protokolu MySQL nebo mizernou konfiguraci mezipaměti, která by mohla generovat životně důležitou spotřebu přístupu na disk namísto využití paměti ke zpracování dotazů. Ujistěte se, že jste schopni zachytit abnormální chování, i když vaše varování a kritické metriky ještě nejsou dosaženy.

Spolu s monitorováním prostoru bychom měli sledovat i aktivitu disku. Nejvyšší hodnoty ke sledování jsou:

  • Požadavky na čtení/zápis
  • Délka fronty IO
  • Průměrné čekání na IO
  • Průměrná doba čtení/zápisu
  • Šířka pásma pro čtení/zápis

K zobrazení všech těchto podrobností můžete použít iostat nebo pt-diskstats z Percony.

Věci, které mohou ovlivnit výkon vašeho disku, často souvisejí s přenosem dat z disku a směrem k němu, takže sledujte abnormální procesy, které nelze spustit jinými uživateli.

Průměrné zatížení

Vše v jednom metrika výkonu. Pochopení zatížení Linuxu je klíčem ke sledování systémů závislých na OS a databázi.

Průměr zatížení související se třemi výše uvedenými body. Vysoké průměrné zatížení může být generováno nadměrným využitím CPU, RAM nebo disku.

Síť

Pokud neprovádíte zálohování nebo nepřenášíte obrovské množství dat, nemělo by to být překážkou.

Problém se sítí může ovlivnit všechny systémy, protože aplikace se nemůže připojit (nebo připojit ztracené balíčky) k databázi, takže je to skutečně důležitá metrika ke sledování. Můžete sledovat latenci nebo ztrátu paketů a hlavním problémem může být saturace sítě, problém s hardwarem nebo jen mizerná konfigurace sítě.

Monitorování databáze

I když je sledování nutností, obvykle není zdarma. Výkon databáze vždy něco stojí v závislosti na tom, jak moc monitorujete, takže byste se měli vyvarovat sledování věcí, které nebudete používat.

Obecně existují dva způsoby monitorování databází, z protokolů nebo ze strany databáze dotazováním.

Abyste je mohli používat, musíte mít vysokou úroveň protokolování, což generuje vysoký přístup k disku a může to ovlivnit výkon vaší databáze.

V režimu dotazování využívá každé připojení k databázi zdroje, takže v závislosti na aktivitě vaší databáze a přiřazených zdrojích může ovlivnit i výkon.

Samozřejmě, že v MySQL je mnoho metrik. Zde se zaměříme na to nejdůležitější.

Monitorování aktivních relací

Měli byste také sledovat počet aktivních relací a stav DB nahoru dolů. K pochopení problému často potřebujete zjistit, jak dlouho databáze běží. takže to můžeme použít k detekci respawnů.

Další věcí by bylo několik relací. Pokud se blížíte limitu, musíte zkontrolovat, zda něco není v pořádku, nebo zda jen potřebujete zvýšit hodnotu max_connections. Rozdílem v počtu může být nárůst nebo pokles připojení. Nesprávné používání sdružování připojení, zamykání nebo problémy se sítí jsou nejčastějšími problémy souvisejícími s počtem připojení.

Hodnoty klíče jsou zde

  • Doba provozu
  • Vlákna_připojena
  • Max_used_connections
  • Aborted_connects

Zámky databáze

Pokud máte dotaz čekající na další dotaz, musíte zkontrolovat, zda je tento další dotaz normálním procesem nebo něčím novým. V některých případech, pokud někdo například provádí aktualizaci velkého stolu, může tato akce ovlivnit normální chování vaší databáze a generovat vysoký počet zámků.

Monitorování replikace

Klíčovými metrikami ke sledování replikace jsou zpoždění a stav replikace. Nejen stav up down, ale také zpoždění, protože neustálé zvyšování této hodnoty není příliš dobrým znamením, protože znamená, že slave není schopen dohnat svého mastera.

Nejčastějšími problémy jsou problémy se sítí, problémy s hardwarovými prostředky nebo problémy s dimenzováním. Pokud čelíte problému s replikací, budete to muset vědět co nejdříve, protože to budete muset opravit, abyste zajistili prostředí s vysokou dostupností.

Replikaci je nejlepší monitorovat kontrolou SLAVE STATUS a následujících parametrů:

  • SLAVE_RUNNING
  • SLAVE_IO_Running
  • SLAVE_SQL_RUNNING
  • LAST_SQL_ERRNO
  • SECONDS_BEHIND_MASTER

Zálohy

Vanilla community edition bohužel neobsahuje správce zálohování. Měli byste vědět, zda byla záloha dokončena a zda je použitelná. Obvykle se tento poslední bod nebere v úvahu, ale je to pravděpodobně nejkritičtější kontrola v procesu zálohování. Zde bychom museli použít externí nástroje jako percona-xtrabackup nebo ClusterControl.

Protokoly databáze

Měli byste sledovat protokol databáze, zda neobsahuje chyby, jako je FATAL nebo uváznutí, nebo dokonce běžné chyby, jako jsou problémy s ověřováním nebo dlouhotrvající dotazy. Většina chyb je zapsána v souboru protokolu s podrobnými užitečnými informacemi k jejich opravě. Běžné body selhání, na které musíte dávat pozor, jsou chyby, velikosti souborů protokolu. Umístění protokolu chyb lze nalézt pod proměnnou log_error.

Externí nástroje

V neposlední řadě zde naleznete seznam užitečných nástrojů pro sledování aktivity databáze.

Percona Toolkit – je sada linuxových nástrojů od Percona pro analýzu MySQL a aktivit OS. Najdete ho zde. Podporuje nejoblíbenější 64bitové distribuce Linuxu, jako je Debian, Ubuntu a Redhat.

mysqladmin - mysqladmin je administrační program pro démona MySQL. Lze jej použít ke kontrole stavu serveru (ping), seznamu procesů, zobrazení hodnot proměnných, ale také k provádění některých administrativních prací, jako je vytváření/vypouštění databází, vyprázdnění (resetování) protokolů, statistik a tabulek, ukončení spuštěných dotazů, zastavit server a řídit replikaci.

innotop – nabízí rozšířený pohled na příkazy SHOW. Je velmi výkonný a může výrazně zkrátit dobu vyšetřování. Mezi vanilla podporou MySQL můžete vidět zobrazení Galera a podrobnosti o replikaci Master-slave.

mtop – monitoruje server MySQL a zobrazuje dotazy, jejichž dokončení zabírá nejvíce času. Mezi funkce patří „přiblížení“ procesu k zobrazení celého dotazu, „vysvětlení“ informací optimalizátoru dotazů pro dotaz a „zabíjení“ dotazů. Kromě toho jsou poskytovány statistiky výkonu serveru, informace o konfiguraci a tipy pro ladění.

Mytop –  běží v terminálu a zobrazuje statistiky o vláknech, dotazech, pomalých dotazech, provozuschopnosti, zatížení atd. v tabulkovém formátu, velmi podobném Linuxu

Závěr

Tento blog nemá být vyčerpávajícím průvodcem, jak zlepšit monitorování databáze, ale doufejme, že poskytuje jasnější obrázek o tom, jaké věci se mohou stát zásadními a některé základní parametry, které lze sledovat. Neváhejte a dejte nám vědět, pokud jsme nějaké důležité vynechali v komentářích níže.


  1. Jak vytvořit omezení cizího klíče pomocí ON DELETE CASCADE v SQL Server - SQL Server / Výukový program TSQL, část 80

  2. Resetování hesla ROOT v MySQL 5.6

  3. Jak FROM_BASE64() funguje v MariaDB

  4. Získejte název krátkého dne v SQL Server (T-SQL)