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

Monitorování výkonu MySQL pomocí ClusterControl

Sledování výkonu databází MySQL je každodenním úkolem téměř každého DBA MySQL. V tomto příspěvku na blogu se pokusíme demonstrovat, jak monitorovat výkon vašich databází MySQL – pomocí ClusterControl.

Co potřebujete sledovat?

Obecně platí, že pokud sledujete výkon MySQL, měli byste pravděpodobně zvážit sledování následujících věcí:

  • Správa dotazů – sledování výkonu vašich dotazů se může ukázat jako jeden z nejúčinnějších způsobů, jak zlepšit výkon MySQL.
  • Detekce odlehlých hodnot dotazu – Historická data nám mohou mnohé napovědět:lze je dokonce použít k výpočtu očekávaného výkonu dotazu na základě historických údajů a poté porovnat aktuální výkon dotazu s očekávaným výkonem, aby bylo možné zjistit odlehlé hodnoty dotazu.
  • Výkon schématu databáze – ClusterControl vám může pomoci optimalizovat výkon vašich instancí MySQL poskytnutím přehledu schémat, abyste zajistili, že vaše schémata budou optimalizována pro vaši pracovní zátěž.
  • Vyrovnávání zátěže - Nástroj pro vyrovnávání zatížení, jako je ProxySQL, HAProxy nebo MaxScale, může zajistit, aby vaše databáze fungovala co nejlépe. Tyto nástroje pro vyrovnávání zatížení lze snadno nasadit pomocí ClusterControl.

Vyrovnávání zatížení databáze a správa dotazů pomocí ClusterControl

ClusterControl podporuje následující nástroje pro vyrovnávání zatížení:

  • HAProxy
  • MariaDB MaxScale
  • ProxySQL
  • Keepalived (pouze virtuální IP adresa)

Upozorňujeme, že ClusterControl musí být umístěn na nezávislém uzlu, odděleném od vašeho databázového clusteru.

Pokud jde o správu dotazů, ClusterControl vám umožňuje absorbovat následující (vy můžete vidět tyto věci, jakmile přepnete na kartu Query Monitor):

  • Můžete zobrazit nejčastější pomalé a dlouhotrvající dotazy.
  • Můžete si zobrazit seznam aktuálně spuštěných dotazů.
  • Můžete si zobrazit seznam odlehlých hodnot dotazu.

Tato karta vám poskytuje agregovaný seznam všech vašich nejčastějších dotazů běžících na všechny uzly vašeho databázového clusteru. ClusterControl získává informace jedním z těchto dvou způsobů:

  1. Dotazy se načítají buď z PERFORMANCE_SCHEMA nebo
  2. Pokud je PERFORMANCE_SCHEMA zakázáno nebo není k dispozici, ClusterControl analyzuje obsah protokolu pomalých dotazů.

Pokud se používá protokol pomalého dotazu, budou zde uvedeny pouze dotazy, které přesahují dlouhou dobu dotazu.

Dlouhá doba dotazu shromažďuje dotazy, jejichž provedení trvá déle než sekund dlouhého dotazu (pokud je například dlouhá doba dotazu 0,1, budou protokolovány pouze dotazy, jejichž provedení trvá déle než 0,1 sekundy), “ protokolové dotazy nepoužívající indexy?" konfiguruje chování ClusterControl s ohledem na dotazy bez indexů atd.

Tabulka nejčastějších dotazů se automaticky obnovuje každých 30 sekund (obnovovací frekvenci lze změnit). Sloupce tabulky top dotazů obsahují seznam vzorovaných dotazů, názvy databází, celkový počet výskytů dotazů, počet řádků zapojených do operací, počet dočasných tabulek vytvořených pro určitý dotaz atd. - seznam agregovaných top dotazů lze také seřadit podle výskytu nebo doby provedení, aby se zobrazily nejběžnější nebo nejpomalejší dotazy.

ClusterControl také umožňuje zobrazit seznam aktuálně spuštěných dotazů. Tato stránka se také automaticky obnovuje každých 30 sekund a zobrazuje:

  • Server MySQL, ze kterého je proces načten.
  • ID připojení.
  • Název databáze.
  • Uživatel MySQL, který vydal prohlášení.
  • Doba spuštění vlákna MySQL v sekundách.
  • Název hostitele klienta, který výpis vydává.
  • Typ příkazu, který vlákno provádí.
  • Stav vlákna (jak je vysvětleno v dokumentaci MySQL)

Stránka s odlehlými hodnotami dotazu zobrazuje dotazy, které jsou považovány za „odlehlé hodnoty“. Jinými slovy, tato stránka zobrazuje všechny dotazy, jejichž provedení trvá déle než běžný dotaz tohoto typu, přičemž déle je definováno jako odchylka latence 2 sigmas + average_query_time. Tato stránka zobrazuje:

  • Přesný čas zachycení dotazu.
  • Samotný dotaz.
  • Čas, který zabralo provedení SQL dotazu.
  • Průměrná doba provádění dotazu SQL.
  • Doba provedení standardní odchylky (mikrosekundy).
  • Maximální doba provádění dotazu (mikrosekundy).
  • Doba uzamčení dotazu (mikrosekundy).

Karta sledování dotazů poskytuje souhrn zpracování dotazů napříč všemi uzly v cluster.

Přehled

Pokud jde o monitorování výkonu vašich databází MySQL, ClusterControl dokáže zázraky. ClusterControl může zjednodušit nasazení nástrojů pro vyrovnávání zatížení, může vám pomoci snadno spravovat vaše dotazy a monitorovat jejich výkon, ClusterControl může také vypočítat očekávaný výkon dotazů na základě historických dat.


  1. Použití funkce COALESCE k oddělení hodnot čárkami

  2. Jak shodit stůl v oracle

  3. Jaké je použití funkce DECODE v SQL?

  4. Pokročilé monitorování a správa databáze pro TimescaleDB