sql >> Databáze >  >> RDS >> MariaDB

Monitorování výkonu MariaDB v hybridním cloudu

Výkon v naší databázi MariaDB je jednou z oblastí, které chceme pečlivě sledovat a sledovat v produkčním prostředí a jeho aktuální provozní stav. Pokud architektonické nastavení používá hybridní cloud, může to být extrémně náročné na čas, práci a peníze. Nejen to, existují určité oblasti, na které je třeba se podívat, zejména síťový prostředník, který slouží jeho konektivitě buď jako on-premise, nebo jako privátní cloud, který komunikuje s veřejným cloudem (GCP, AWS, Azure atd.) a naopak. .

Tento blog je o sledování výkonu vašich databází MariaDB v infrastruktuře hybridního cloudu. Poskytneme vám základy a nejdůležitější klíčové ukazatele při sledování výkonu vaší databáze MariaDB v rámci nastavení hybridního cloudu.

Proč potřebujete sledování výkonu?

V hybridním cloudu může být složité sledovat každou službu, kterou využíváte. Na rozdíl od vlastního datového centra nebo privátního cloudu máte plnou kontrolu nad hardwarovou a softwarovou infrastrukturou. S veřejným cloudem existují omezení na služby, které jste zadali, a pokud chcete jiné služby, které by vám poskytovaly metriky a protokoly, mohou vám vzniknout dodatečné náklady. Bezpečnost je také problémem s ohledem na vaše důvěrná data, která jsou shromažďována.

Sledování výkonu pomáhá určit, jak efektivně a jak rychle běží vaše databáze v cloudu, on-prem nebo privátním či veřejném cloudu. V praxi sada otestovaných a na výsledcích založených procesů a nástrojů, které vám poskytnou metriky v reálném čase nebo periodické metriky.

V hybridním cloudu nejsou všechny nástroje pro monitorování softwaru vytvořeny tak, aby spravovaly klíčové metriky, které je třeba sledovat a monitorovat. Měli byste mít nápad a znalosti k určení požadovaných metrik a požadavků, které může nástroj poskytnout. U hybridního cloudu se očekává, že povaha fungování hybridního cloudu může být složitá. Služby jsou vysoce distribuované a smíšené s dalšími službami, které nejsou vázány pouze na jednoho poskytovatele.

V tomto ohledu má váš monitorovací software tyto speciality a má také schopnost identifikovat a oddělit, ke kterému cloudu patří. Monitorovací software nebo nástroje musí mít schopnost řešit úzká místa, bezpečnostní problémy, latence, poskytovat škálovatelnost, upozorňovat na probíhající problémy a poskytovat předpovědi. Predikce může zabránit dalším následkům, které mohou vést ke katastrofě nebo dopadu na efektivitu vašich databází MariaDB. To pomáhá celému týmu včetně infrastrukturních inženýrů, databázových inženýrů, správců serverů a vývojářů zajistit, že databázové servery jsou zdravé a běží na úrovni očekávání.

Co je třeba zvážit při monitorování databáze

Při monitorování databázového clusteru MariaDB (replikace nebo Galera) nebo uzlu je třeba vzít v úvahu dvě hlavní věci:operační systém a samotnou databázi. Budete muset definovat, které metriky budete sledovat z obou stran a jak to budete dělat. Metriku musíte vždy sledovat v kontextu vašeho systému a měli byste hledat změny ve vzorci chování.

Ve většině případů budete muset použít několik nástrojů (jelikož je téměř nemožné najít takový, který by pokrýval všechny požadované metriky.) 

Mějte na paměti, že když je ovlivněna jedna z vašich metrik, může to ovlivnit i ostatní, takže řešení problému bude složitější. Aby byl tento úkol co nejjednodušší, je důležité mít dobrý monitorovací a výstražný systém.

Vždy sledujte aktivitu serveru (síť, disk, zatížení, paměť a CPU)

Monitorování aktivity serveru může být také složitým úkolem, pokud máte velmi komplikovaný zásobník, který je propleten ve vaší databázové architektuře. Pro databázi MariaDB je však vždy nejlepší mít vaše uzly vždy nastavené jako vyhrazený server, abyste získali úplnou introspekci na každý uzel. Ačkoli vás to neomezuje ve využívání všech náhradních zdrojů, níže jsou uvedeny společné klíčové oblasti, které musíte prozkoumat.

Síť

V infrastruktuře hybridního cloudu je to jeden z nejdůležitějších problémů, které je třeba zvážit, protože musíte vzít v úvahu typ návrhu a způsob, jakým komunikuje z místního nebo privátního cloudu do veřejného cloudu. a naopak. Ať tak či onak, máte jeden z klastrů nebo uzlů specializovaných na svou roli buď jako primární pro příjem zápisů, nebo slouží jako zotavení po havárii. V tomto ohledu nechcete, aby vaše uzly obnovy měly latence, horší je, že dochází k velkým zpožděním replikace. Kdykoli dojde ke zpoždění a dojde k výpadku primárního clusteru z konkrétního cloudu (řekněme vašeho místního), váš veřejný cloud musí převzít kontrolu, ale musí být schopen obsluhovat nejaktuálnější data. Kdykoli k tomu může dojít, možná budete muset přidat mechanismus před selháním, který se postará o přírůstkové zálohy nebo PITR v případě, že některé transakce nebo zápisy ještě nebyly použity ve vašem clusteru obnovy (nebo v tomto případě ve vašem veřejném cloudovém clusteru).

Pokud používáte Galeru, od doby, kdy MariaDB upgradovala svou Galeru na verzi 4, je replikace streamování přidána jako jedna z klíčových funkcí a změn oproti předchozí verzi. Vzhledem k tomu, že streamingová replikace řeší nevýhody, které měla v předchozích verzích, umožňuje jí spravovat více než 2 GB zápisových sad od Galera Cluster 4. To umožňuje fragmentaci velkých transakcí a důrazně se doporučuje povolit to pouze na úrovni relace. To znamená, že sledování vaší síťové aktivity je velmi důležité a zásadní pro normální činnost vašeho MariaDB Clusteru. To vám pomůže určit, který uzel měl největší nebo nejvyšší síťový provoz na základě časového období.

Dobrým příkladem vykreslování monitorování sítě je použití ClusterControl. Identifikuje každý z uzlů a poskytuje přehled o jeho síťové aktivitě na uzel bez ohledu na to, ve kterém cloudu se uzel nachází. Viz snímek obrazovky níže:

Aktivita CPU, paměti a zatížení

Dovolte mi stručně uvést tyto tři oblasti, na které je třeba se při monitorování zaměřit. V této sekci je vždy nejlepší mít lepší pozorovatelnost následujících oblastí najednou. Je to rychlé a snadné na pochopení a pomáhá při vyloučení omezení výkonu nebo identifikaci chyb, které způsobují, že se vaše uzly buď zablokují, nebo ovlivní ostatní uzly, nebo dokonce hrozí, že se cluster rozpadne.

Jak tedy CPU, paměť a aktivita zátěže při monitorování pomáhají vaší MariaDB? No, jak jsem zmínil výše, to je jedna z mála věcí, ale velký faktor pro každodenní rutinní kontroly. Nyní vám to také pomůže určit, zda se jedná o periodické nebo náhodné výskyty. Pokud je to periodické, může to souviset se zálohami spuštěnými v jednom z vašich databázových uzlů MariaDB, nebo se jedná o rozsáhlý dotaz, který vyžaduje optimalizaci. Například chybné dotazy bez správných indexů nebo nevyvážené využití načítání dat, jako je porovnávání řetězců pro tak velký řetězec. To může být nepopiratelně nepoužitelné pro databáze typu OLTP, zejména pokud je to skutečně povaha a požadavky vaší aplikace. Pro vyhledávání velkých řetězců a/nebo porovnávání řetězců je lepší používat jiné analytické nástroje, jako je MariaDB Columnstore, nebo jiné nástroje pro analytické zpracování (Apache Spark, Kafka nebo MongoDB atd.).

Když jsou tedy všechny tyto klíčové oblasti monitorovány, je otázkou, jak by měly být monitorovány? Musí být sledován alespoň za minutu. S propracovaným monitorováním, tj. za sekundu kolektivních metrik může být náročné na zdroje a hodně chamtivé, pokud jde o vaše zdroje. I když je půlminutová kolektivita přijatelná, zejména pokud jsou vaše data a RPO (cíl bodu obnovy) velmi nízké, takže potřebujete podrobnější metriky dat v reálném čase. Je velmi důležité, abyste byli schopni dohlížet na celkový obraz vašeho databázového clusteru. Kromě toho je také nejlepší a důležité, že kdykoli, jaké metriky sledujete, máte k dispozici správný nástroj, který vás upozorní, když jsou věci v nebezpečí nebo dokonce jen varování. Použití správného nástroje, jako je ClusterControl, vám pomůže spravovat tyto klíčové oblasti, které mají být monitorovány. Používám bezplatnou verzi nebo komunitní edici ClusterControl, která mi pomáhá monitorovat mé uzly bez jakýchkoli potíží od instalace až po monitorování uzlů pomocí pouhých několika kliknutí. Podívejte se například na níže uvedené snímky obrazovky:

Poskytuje také základ pro jednotlivé uzly s jednoduchým přehledem grafů

nebo s výkonnějším a bohatším datovým modelem, který také podporuje dotazovací jazyk pomocí Prometheus, vám může poskytnout analýzu výkonu vaší databáze MariaDB na základě historických dat a včas porovnat její výkon. Například,

To vám jen poskytuje viditelnější metriky. Takže vidíte, jak důležité je mít správný nástroj při monitorování databáze MariaDB v hybridním cloudu.

Kolektivní sledování vašich statistických proměnných MariaDB

Nemůže být nevyhnutelné, že verze databáze MariaDB budou čas od času vytvářet nové statistiky pro monitorování nebo vylepšení povahy monitorování databáze tím, že poskytnou více stavových proměnných a zpřesní hodnoty, na které se lze dívat.

Bajty odeslané/přijaté

Poslané nebo přijaté bajty korelují se síťovou aktivitou a jsou jednou z klíčových oblastí, které je třeba poměřovat vedle sebe, zejména v topologii hybridního cloudu. To vám umožní určit, který uzel je nejvíce ovlivněn nebo připisuje problémy s výkonem, které trpí ve vaší databázi MariaDB. Je to velmi důležité, protože můžete zkontrolovat, zda může dojít k nějaké degradaci hardwaru, jako je vaše síťové zařízení nebo základní úložné zařízení, u kterého může synchronizace špinavých stránek trvat příliš dlouho.

Viz ukázkový snímek obrazovky

Načtení clusteru

Jde spíše o databázovou aktivitu o tom, kolik změn nebo načtení dat bylo dosud dotazováno nebo provedeno od doby provozu serveru. Pomáhá vám vyloučit, jaké druhy dotazů nejvíce ovlivňují výkon vašeho databázového clusteru. To vám umožní poskytnout prostor pro zlepšení, zejména pokud jde o vyvážení zatížení vašich databázových požadavků.

Na databázovém serveru MariaDB je jako takových mnoho proměnných. Nejdůležitější věcí, kterou zde musíte vzít v úvahu, je nástroj, který používáte pro monitorování svého databázového clusteru. S ClusterControl (Community Edition) mi poskytuje více možností, jak flexibilně nahlížet do databáze MariaDB. Viz příklad níže,

Potom můžete také vybrat z rozbalovací nabídky další proměnné, na které se chcete podívat,

To je velmi užitečné a pomůže vám to určit například v topologii replikace v hybridním cloudu. Můžete získat rychlý přehled o tom, jaký je stav a výkon související se sítí, ale také s dalšími proměnnými ukazateli, které můžete zvážit a zkontrolovat, jaká jsou úzká hrdla, která by ovlivnila váš výkon MariaDB v hybridní cloudové topologii. Můžete určit, zda je vaše aplikace nenasytná se zápisy, pak je ovlivněna replikace a síťový přenos, můžete získat klastrovou interaktivitu v rámci dvou nebo více cloudových infrastruktur. Nejlepší je určit, jak dobře vaše uzly zvládnou stres. Zejména během zátěžového testování před prosazením konkrétních změn ve vaší aplikaci je vždy nejlepší vyzkoušet a otestovat, abyste určili správu kapacity vašeho aplikačního produktu a určili, zda vaše aktuální databázové uzly a návrh zvládnou zátěž požadavků vaší aplikace.

Pro podrobnější a bohatší metriky dat můžete získat více dat pomocí monitorování založeného na agentech. Viz níže,

Takto budete přistupovat k monitorování vašeho MariaDB Clusteru. Dokonalá vizualizace je vždy jednodušší a rychlejší na správu. Když věci jdou na jih, nemůžete si dovolit ztrácet svou produktivitu a také prostoje mohou ovlivnit vaše podnikání. Přestože máte bezplatnou verzi, nezajistí vám luxus a pohodlí při správě databází s vysokou návštěvností; Mít alarmy, upozornění a správu databází v jedné oblasti jsou doplňky, které ClusterControl umí.

Závěr

Monitorování databázových serverů MariaDB v prostředí hybridního cloudu není snadné a je také komplikované, zvláště když existuje množství služeb a komplexních vztahů, které formulují celý zásobník vaší technologie. Použití správných nástrojů pro monitorování vám pomůže efektivně spravovat vaši aplikaci a zároveň zvýšit produktivitu. Také se správnými monitorovacími nástroji v ruce budete mít více času soustředit se na zlepšování vašich aplikací spolu s dalšími obchodními procesy.


  1. Jak seřadit řádky v oddílu v SQL

  2. Najděte maximální počet po sobě jdoucích let pro každé ID v tabulce (Oracle SQL)

  3. Syntaxe SQL SELECT – řazeno podle DBMS

  4. Nahraďte jednoduché uvozovky v SQL Server