sql >> Databasteknik >  >> RDS >> MariaDB

Övervaka MariaDB-prestanda i ett hybridmoln

Prestandan i vår MariaDB-databas är ett av de områden vi vill noggrant övervaka och observera i en produktionsmiljö och dess aktuella drifttillstånd. Det kan vara extremt krävande för tid, arbete och pengar om den arkitektoniska installationen använder ett hybridmoln. Inte nog med det, det finns så vissa områden att titta på, särskilt nätverksförmedlaren som tjänar sin anslutning som antingen ett lokalt eller ett privat moln som kommunicerar med det offentliga molnet (GCP, AWS, Azure, etc.) och vice versa .

Den här bloggen handlar om att övervaka prestandan för dina MariaDB-databaser på en hybridmolninfrastruktur. Vi kommer att förse dig med grunderna och de viktigaste nyckelindikatorerna när du övervakar din MariaDB-databasprestanda i en hybridmolninstallation.

Varför behöver du prestandaövervakning?

På ett hybridmoln kan det vara komplicerat att övervaka varje tjänst du använder. Till skillnad från ditt eget datacenter eller ditt privata moln har du full kontroll över hårdvaru- och mjukvaruinfrastrukturen. Med offentligt moln finns det begränsningar för de tjänster du anbud och det kan medföra en extra kostnad om du vill ha olika tjänster som skulle ge dig mätvärden och loggar. Säkerhet är också ett problem när det gäller dina konfidentiella uppgifter som samlas in.

Prestandaövervakning hjälper till att avgöra hur effektiva och hur snabbt dina databaser körs i molnet, på plats eller privat eller offentligt moln. I praktiken en uppsättning testade och resultatbaserade processer och verktyg som ger dig realtids- eller periodiska mätvärden.

Inom ett hybridmoln är inte alla programvaruövervakningsverktyg byggda för att hantera nyckelmått som måste observeras och övervakas. Du bör ha idén och kunskapen för att bestämma de nödvändiga mått och krav som verktyget kan tillhandahålla. Med ett hybridmoln förväntas det att karaktären på hur ett hybridmoln fungerar kan vara komplex. Tjänsterna är högdistribuerade och blandade med andra tjänster som inte bara är bundna till en leverantör.

I det avseendet har din övervakningsprogramvara dessa specialiteter och har den också förmågan att identifiera och frikoppla från vilket moln den tillhör. En övervakningsprogramvara eller -verktyg måste ha förmågan att hantera flaskhalsar, säkerhetsproblem, latenser, tillhandahålla skalbarhet, meddela om pågående problem och ge förutsägelser. Förutsägelsen kan undvika ytterligare konsekvenser som kan leda till en katastrof eller påverka effektiviteten av dina MariaDB-databaser. Detta hjälper hela teamet, inklusive infrastrukturingenjörer, databasingenjörer, serveradministratörer och utvecklare, att säkerställa att databasservrarna är sunda och fungerar enligt förväntningarna.

Saker att tänka på för databasövervakning

När du övervakar ditt MariaDB-databaskluster (replikering eller Galera) eller nod, finns det två huvudsakliga saker att ta hänsyn till:operativsystemet och själva databasen. Du måste definiera vilka mätvärden du ska övervaka från båda sidor och hur du ska göra det. Du måste alltid övervaka måtten i ditt system, och du bör leta efter förändringar i beteendemönstret.

I de flesta fall kommer du att behöva använda flera verktyg (eftersom det är nästan omöjligt att hitta ett som täcker alla önskade mätvärden.) 

Tänk på att när en av dina mätvärden påverkas kan den också påverka andra, vilket gör felsökningen av problemet mer komplex. Att ha ett bra övervaknings- och varningssystem är viktigt för att göra denna uppgift så enkel som möjligt.

Övervaka alltid din serveraktivitet (nätverk, disk, laddning, minne och CPU)

Att övervaka din serveraktivitet kan också vara en komplex uppgift om du har en mycket komplicerad stack som är sammanflätad i din databasarkitektur. Men för en MariaDB-databas är det alltid bäst att ha dina noder alltid inställda som en dedikerad server för att få en fullständig introspektion per nod. Även om det inte begränsar dig från att använda alla reservresurser, nedan är de vanliga nyckelområdena du måste titta närmare på.

Nätverk

I en hybridmolninfrastruktur är det en av de viktigaste frågorna att titta på eftersom du måste ta hänsyn till typen av design och hur den kommunicerar från lokalt eller privat moln till det offentliga molnet och vice versa. I vilket fall som helst har du ett av klustren eller noderna som specialiserar sig på sin roll antingen som primär för att ta emot skrivningar eller så fungerar den som katastrofåterställning. Med det avseendet vill du inte att dina återställningsnoder ska ha latenser, värre blir det stora replikeringsfördröjningar. Närhelst det blir fördröjningar och när det primära klustret från ett visst moln (låt oss säga ditt on-prem) går ner, måste ditt offentliga moln ta över men ska kunna leverera den mest uppdaterade data. Närhelst detta kan hända, kan du behöva lägga till en pre-failover-mekanism som ska ta hand om inkrementella säkerhetskopior eller PITR om några transaktioner eller skrivningar ännu inte har tillämpats i ditt återställningskluster (eller i det här fallet ditt offentliga molnkluster).

Om du använder Galera, sedan MariaDB uppgraderade sin Galera till version 4, läggs strömmande replikering till som en av nyckelfunktionerna och ändringarna från den tidigare versionen. Eftersom strömmande replikering tar itu med nackdelarna den hade i de tidigare utgåvorna men tillåter den att hantera mer än 2 GB skrivset sedan Galera Cluster 4. Detta gör att stora transaktioner kan fragmenteras och rekommenderas starkt för att aktivera detta enbart under sessionsnivå. Detta betyder att övervakning av din nätverksaktivitet är mycket viktig och avgörande för den normala aktiviteten i ditt MariaDB-kluster. Detta hjälper dig att identifiera vilken nod som hade mest eller högst nätverkstrafik baserat på tidsperioden.

Ett bra exempel på rendering av nätverksövervakning är att använda ClusterControl. Den identifierar var och en av noderna och ger en översikt över dess nätverksaktivitet per nod oavsett vilket moln noden är belägen. Se skärmdump nedan:

CPU, minne och laddningsaktivitet

Låt mig kort nämna dessa tre områden att titta på vid övervakning. I det här avsnittet är det alltid bäst att du har bättre observerbarhet för följande områden på en gång. Det är snabbt och enkelt att förstå och hjälper till att utesluta en prestandaflaskhals eller identifiera buggar som gör att dina noder antingen stannar eller påverkar de andra noderna eller till och med har möjligheten att ett kluster faller.

Så hur hjälper CPU, minne och laddningsaktivitet vid övervakning din MariaDB? Tja, som jag har nämnt ovan är det en av de få sakerna som ändå är en stor faktor för dagliga rutinkontroller. Nu hjälper detta dig också att identifiera om dessa är periodiska eller slumpmässiga händelser. Om det är periodiskt kan det vara relaterat till säkerhetskopior som körs i en av dina MariaDB-databasnoder, eller så är det en massiv fråga som kräver optimering. Till exempel dåliga frågor utan korrekta index, eller inbalanserad användning av datahämtning, som att göra en strängjämförelse för en så stor sträng. Det kan onekligen vara otillämpligt för databaser av OLTP-typ, särskilt om det verkligen är din applikations natur och krav. Bättre använd andra analytiska verktyg som MariaDB Columnstore, eller andra analytiska bearbetningsverktyg från tredje part (Apache Spark, Kafka eller MongoDB, etc.) för datahämtning av stora strängar och/eller strängmatchning.

Så med alla dessa nyckelområden som övervakas, är frågan hur det ska övervakas? Det måste övervakas minst per minut. Med förfinad övervakning, det vill säga per sekund av kollektiva mått kan vara resurskrävande och mycket giriga när det gäller dina resurser. Även om en halv minuts kollektivitet är acceptabelt, särskilt om din data och RPO (återställningspunktsmål) är mycket låg, så du behöver mer detaljerade och realtidsdatamått. Det är mycket viktigt att du kan övervaka hela bilden av ditt databaskluster. Bortsett från detta är det också bäst och viktigt att närhelst vilka mätvärden du övervakar, har du rätt verktyg för att fånga din uppmärksamhet när saker är i fara eller till och med bara varningar. Att använda rätt verktyg som ClusterControl hjälper dig att hantera dessa nyckelområden som ska övervakas. Jag använder en gratisversion eller community-utgåva av ClusterControl som hjälper mig att övervaka mina noder utan krångel från installation till övervakning av noder med bara några klick. Se till exempel skärmdumparna nedan:

Det ger också en per nod-bas med en enkel graföversikt,

eller med en kraftfullare och rikare datamodell som också stöder frågespråk som använder Prometheus, kan ge dig analys av hur din MariaDB-databas presterar baserat på historisk data som jämför dess prestanda i tid. Till exempel,

Det ger dig bara mer synlig statistik. Så du ser hur viktigt det verkligen är att ha rätt verktyg när du övervakar din MariaDB-databas i ett hybridmoln.

Kollektiv övervakning av dina MariaDB-statistikvariabler

Då och då kan det inte vara oundvikligt att MariaDB-databasversioner kommer att producera ny statistik för att övervaka eller förbättra övervakningen av databasen genom att tillhandahålla fler statusvariabler och förfina värden att titta på.

Bytes skickade/mottagna

Byten som skickas eller tas emot korrelerar med nätverksaktiviteten och är ett av nyckelområdena att titta sida vid sida, särskilt i en hybrid molntopologi. Detta låter dig bestämma vilken nod som är mest påverkad eller tillskriver prestandaproblemen som lider i din MariaDB-databas. Det är mycket viktigt eftersom du kan kontrollera om det kan vara någon försämring när det gäller hårdvara som din nätverksenhet eller den underliggande lagringsenheten för vilken synkronisering av smutsiga sidor kan ta för lång tid att göra.

Se exemplet på skärmdumpen,

Klusterladdning

Detta är mer av databasaktiviteten för hur mycket ändringar eller datahämtning som har efterfrågats eller gjorts hittills sedan serverns drifttid. Det hjälper dig att utesluta vilken typ av frågor som mest påverkar ditt databasklusterprestanda. Detta gör att du kan ge utrymme för förbättringar, särskilt när det gäller att balansera belastningen på dina databasförfrågningar.

Som sådan finns det massor av variabler att titta på i en MariaDB-databasserver. Det viktigaste här du måste ta hänsyn till är verktyget du använder för att övervaka ditt databaskluster. Med ClusterControl (Community Edition) ger det mig fler sätt med flexibiliteten att titta på i en MariaDB-databas. Se exemplet nedan,

Då kan du också välja från rullgardinsmenyn för de andra variablerna att titta på,

Detta är mycket användbart och hjälper dig att avgöra till exempel i en replikeringstopologi i ett hybridmoln. Du kan få en snabb översikt över vad som är tillstånd och prestanda relaterat till nätverk men också med andra variabla pekare att överväga och kontrollera vilka flaskhalsar som skulle påverka din MariaDB-prestanda i en hybrid molntopologi. Du kan avgöra om din applikation är girig med skrivningar, då påverkas replikeringen och nätverksöverföringen, du kan få klusterinteraktivitet inom två eller flera molninfra. Det är bäst att avgöra hur väl dina noder kan hantera stressen. Särskilt under stresstester innan du driver specifika ändringar i din applikation, är det alltid bäst att försöka testa för att fastställa kapacitetshanteringen för din applikationsprodukt och avgöra om dina nuvarande databasnoder och design kan hantera belastningen av dina applikationskrav.

För mer detaljerad och detaljerad datastatistik kan du få mer data med hjälp av agentbaserad övervakning. Se nedan,

Så här ska du närma dig övervakningen av ditt MariaDB-kluster. En perfekt visualisering är alltid enklare och snabbare att hantera. När det går söderut har du inte råd att förlora din produktivitet och även stilleståndstiden kan påverka din verksamhet. Även om en gratisversion inte ger dig lyxen och komforten när du hanterar databaser med hög trafik; att ha larm, aviseringar och databashantering i ett område är ett-walk-in-the-park-tillägg som ClusterControl kan göra.

Slutsats

Att övervaka dina MariaDB-databasservrar i en hybridmolnmiljö är inte lätt och det är också komplicerat, särskilt när det finns många tjänster och komplexa relationer som formulerar hela stacken av din teknik. Att använda rätt verktyg för övervakning hjälper dig att hantera din applikation effektivt och samtidigt förbättra produktiviteten. Med rätt övervakningsverktyg i handen kommer du också att ha mer tid att fokusera på att förbättra dina applikationer tillsammans med andra affärsprocesser.


  1. Korrekt bevarade beräknade kolumner

  2. Webbseminarium:Spårning av frågeförlopp i SQL Server

  3. Hur hoppar man över kolumner i CSV-fil när man importerar till MySQL-tabell med LOAD DATA INFILE?

  4. Hur man ersätter Djangos primärnyckel med ett annat heltal som är unikt för den tabellen