sql >> Database teknologi >  >> RDS >> MariaDB

Overvågning af MariaDB-ydelse i en hybridsky

Ydeevne i vores MariaDB-database er et af de områder, vi ønsker at overvåge og observere nøje i et produktionsmiljø og dets rettidige driftstilstand. Det kan være ekstremt krævende for tid, arbejde og penge, hvis den arkitektoniske opsætning bruger en Hybrid Cloud. Ikke nok med det, der er så bestemte områder at se på, især netværksformidleren, der tjener sin tilslutning som enten en on-premise eller en privat sky, der kommunikerer med den offentlige sky (GCP, AWS, Azure osv.) og omvendt .

Denne blog handler om at overvåge ydeevnen af ​​dine MariaDB-databaser på en Hybrid Cloud-infrastruktur. Vi giver dig det grundlæggende og de vigtigste nøgleindikatorer, når du overvåger din MariaDB-databaseydeevne i en hybrid cloud-opsætning.

Hvorfor har du brug for præstationsovervågning?

På en Hybrid Cloud kan det være kompliceret at overvåge hver enkelt tjeneste, du benytter. I modsætning til dit eget datacenter eller din private sky har du fuld kontrol over hardware- og softwareinfrastrukturen. Med offentlig sky er der begrænsninger på de tjenester, du har tilbudt, og det kan medføre en ekstra omkostning, hvis du vil have forskellige tjenester, der vil give dig metrics og logfiler. Sikkerhed er også et problem med hensyn til dine fortrolige data, der bliver indsamlet.

Ydeevneovervågning hjælper med at bestemme, hvor effektive og hvor hurtigt dine databaser kører i skyen, on-prem eller privat eller offentlig sky. I praksis et sæt af testede og resultatbaserede processer og værktøjer, der vil give dig realtid eller periodiske metrics.

Inden for en hybridsky er ikke alle softwareovervågningsværktøjer bygget til at styre nøglemålinger, der skal observeres og overvåges. Du bør have ideen og viden til at bestemme de nødvendige målinger og krav, som værktøjet kan levere. Med en hybridsky forventes det, at karakteren af, hvordan en hybridsky fungerer, kan være kompleks. Tjenesterne er stærkt distribuerede og blandet med andre tjenester, der ikke kun er bundet til én udbyder.

I den forbindelse har din overvågningssoftware disse specialer og har den også evnen til at identificere og afkoble, hvilken sky den tilhører. En overvågningssoftware eller -værktøjer skal have evnen til at løse flaskehalse, sikkerhedsproblemer, latenser, give skalerbarhed, underrette om igangværende problemer og give forudsigelser. Forudsigelsen kan undgå yderligere konsekvenser, der kan føre til en katastrofe eller påvirke effektiviteten af ​​dine MariaDB-databaser. Dette hjælper hele teamet inklusive infrastrukturingeniører, databaseingeniører, serveradministratorer og udviklere med at sikre, at databaseserverne er sunde og kører på dets forventningsniveau.

Ting at overveje i forbindelse med databaseovervågning

Når du overvåger din MariaDB-databaseklynge (replikering eller Galera) eller node, er der to hovedting at tage højde for:operativsystemet og selve databasen. Du bliver nødt til at definere, hvilke målinger du vil overvåge fra begge sider, og hvordan du vil gøre det. Du skal altid overvåge metrikken i sammenhæng med dit system, og du bør se efter ændringer i adfærdsmønsteret.

I de fleste tilfælde skal du bruge flere værktøjer (da det er næsten umuligt at finde et, der dækker alle de ønskede målinger). 

Husk, at når en af ​​dine metrics påvirkes, kan den også påvirke andre, hvilket gør fejlfinding af problemet mere kompleks. At have et godt overvågnings- og alarmeringssystem er vigtigt for at gøre denne opgave så enkel som muligt.

Overvåg altid din serveraktivitet (netværk, disk, indlæsning, hukommelse og CPU)

Overvågning af din serveraktivitet kan også være en kompleks opgave, hvis du har en meget kompliceret stak, der er flettet ind i din databasearkitektur. For en MariaDB-database er det dog altid bedst at have dine noder altid sat op som en dedikeret server for at få en fuld introspektion pr. node-basis. Selvom det ikke begrænser dig fra at bruge alle de ekstra ressourcer, er nedenfor de fælles nøgleområder, du skal se nærmere på.

Netværk

På en Hybrid Cloud-infrastruktur er det en af ​​de vigtigste bekymringer at se nærmere på, da du skal tage højde for typen af ​​design, og hvordan det kommunikerer fra on-premise eller privat cloud til den offentlige cloud og omvendt. Uanset hvad, har du en af ​​klyngerne eller noderne, der specialiserer sig i dens rolle, enten som en primær til at modtage skrivninger, eller den tjener som katastrofegendannelse. Med den henseende ønsker du ikke, at dine gendannelsesknuder skal have latenser, det er værre, det får store replikationsforsinkelser. Når det bliver forsinkelser, og når den primære klynge fra en bestemt sky (lad os sige din on-prem) går ned, skal din offentlige sky tage over, men skal være i stand til at betjene de mest opdaterede data. Når dette kan ske, skal du muligvis tilføje en præ-failover-mekanisme, der skal tage sig af trinvis sikkerhedskopiering eller PITR, hvis nogle transaktioner eller skrivninger endnu ikke er blevet anvendt i din gendannelsesklynge (eller i dette tilfælde din offentlige cloud-klynge).

Hvis du bruger Galera, da MariaDB opgraderede sin Galera til version 4, tilføjes streamingreplikering som en af ​​nøglefunktionerne og ændringerne fra den tidligere version. Da streaming-replikering adresserer de ulemper, den havde i de tidligere udgivelser, men tillader den at administrere mere end 2 GB skrivesæt siden Galera Cluster 4. Dette tillader store transaktioner at blive fragmenteret, og det anbefales stærkt at aktivere dette alene på sessionsniveau. Dette betyder, at overvågning af din netværksaktivitet er meget vigtig og afgørende for den normale aktivitet i din MariaDB-klynge. Dette vil hjælpe dig med at identificere, hvilken node der havde mest eller højeste netværkstrafik baseret på tidsperioden.

Et godt eksempel på gengivelse af netværksovervågning er at bruge ClusterControl. Den identificerer hver af noderne og giver et overblik over dens netværksaktivitet pr. node, uanset hvilken sky noden er placeret. Se skærmbillede nedenfor:

CPU, hukommelse og indlæsningsaktivitet

Lad mig kort beskrive disse tre områder, der skal ses på ved overvågning. I dette afsnit er det altid bedst, at du har bedre observerbarhed af følgende områder på én gang. Det er hurtigt og nemt at forstå og hjælper med at udelukke en flaskehals i ydeevnen eller identificere fejl, der får dine noder til enten at gå i stå eller påvirke de andre noder eller endda have muligheden for, at en klynge går ned.

Så hvordan hjælper CPU, hukommelse og indlæsningsaktivitet ved overvågning din MariaDB? Nå, som jeg har nævnt ovenfor, er det en af ​​de få ting, der endnu er en stor faktor for daglige rutinetjek. Nu hjælper dette dig også med at identificere, om disse er periodiske eller tilfældige hændelser. Hvis det er periodisk, kan det være relateret til sikkerhedskopier, der kører i en af ​​dine MariaDB-databasenoder, eller det er en massiv forespørgsel, der kræver optimering. For eksempel dårlige forespørgsler uden ordentlige indekser eller ubalanceret brug af datahentning, såsom at lave en strengsammenligning for så stor en streng. Det kan unægteligt være uanvendeligt for databaser af OLTP-typen, især hvis det virkelig er karakteren og kravene til din applikation. Brug bedre andre analytiske værktøjer såsom MariaDB Columnstore eller andre analytiske behandlingsværktøjer fra tredjepart (Apache Spark, Kafka eller MongoDB osv.) til hentning af store strengedata og/eller strengmatchning.

Så med alle disse nøgleområder, der overvåges, er spørgsmålet, hvordan det skal overvåges? Det skal overvåges mindst pr. minut. Med raffineret overvågning, dvs. per-sekund af kollektive målinger kan være ressourcekrævende og meget grådige med hensyn til dine ressourcer. Selvom et halvt minuts kollektivitet er acceptabelt, især hvis dine data og RPO (recovery point goal) er meget lavt, så du har brug for mere detaljerede og realtidsdatamålinger. Det er meget vigtigt, at du er i stand til at overskue hele billedet af din databaseklynge. Bortset fra dette er det også bedst og vigtigt, at når som helst hvilke målinger du overvåger, har du det rigtige værktøj til at få din opmærksomhed, når ting er i fare eller endda bare advarsler. Brug af det rigtige værktøj såsom ClusterControl hjælper dig med at styre disse nøgleområder, der skal overvåges. Jeg bruger en gratis version eller community-udgave af ClusterControl, som hjælper mig med at overvåge mine noder uden besvær fra installation til overvågning af noder med blot et par klik. Se f.eks. skærmbillederne nedenfor:

Det giver også en pr. node-basis med en simpel grafoversigt,

eller med en mere kraftfuld og rig datamodel, som også understøtter forespørgselssprog ved hjælp af Prometheus, kan give dig analyse af, hvordan din MariaDB-database klarer sig baseret på historiske data, der sammenligner dens ydeevne rettidigt. For eksempel,

Det giver dig bare mere synlige metrics. Så du kan se, hvor vigtigt det virkelig er at have det rigtige værktøj, når du overvåger din MariaDB-database i en Hybrid Cloud.

Kollektiv overvågning af dine MariaDB-statistiske variabler

Fra tid til anden kan det ikke være uundgåeligt, at MariaDB-databaseversioner vil producere nye statistikker for at overvåge eller forbedre karakteren af ​​overvågning af databasen ved at give flere statusvariabler og forfine værdier at se på.

Bytes sendt/modtaget

De bytes, der sendes eller modtages, korrelerer med netværksaktiviteten og er et af nøgleområderne at se side om side, især i en hybrid cloud-topologi. Dette giver dig mulighed for at bestemme, hvilken node der er mest påvirket eller tilskriver de præstationsproblemer, der lider i din MariaDB-database. Det er meget vigtigt, da du kan tjekke, om der kan være nogen forringelse med hensyn til hardware, såsom din netværksenhed eller den underliggende lagerenhed, for hvilken synkronisering af beskidte sider kan tage for lang tid at udføre.

Se eksempelskærmbilledet,

Klyngeindlæsning

Dette er mere af databaseaktiviteten af, hvor mange ændringer eller datahentning der er blevet forespurgt eller udført indtil nu siden serverens oppetid. Det hjælper dig med at udelukke, hvilken slags forespørgsler, der mest påvirker din databaseklyngeydelse. Dette giver dig mulighed for at give plads til forbedringer, især med hensyn til at afbalancere belastningen af ​​dine databaseanmodninger.

Som sådan er der tonsvis af variabler at se på i en MariaDB-databaseserver. Det vigtigste her, du skal tage højde for, er det værktøj, du bruger til at overvåge din databaseklynge. Med ClusterControl (Community Edition) giver det mig flere måder med fleksibiliteten til at se på i en MariaDB-database. Se eksemplet nedenfor,

Så kan du også vælge fra rullemenuen for de andre variabler at se på,

Dette er meget nyttigt og hjælper dig med at bestemme for eksempel i en replikationstopologi i en hybridsky. Du kan få et hurtigt overblik over status og ydeevne relateret til netværk, men også med andre variable pointer til at overveje og kontrollere, hvilke flaskehalse der vil påvirke din MariaDB-ydeevne i en hybrid cloud-topologi. Du kan afgøre, om din applikation er grådig med skrivninger, så bliver replikeringen og netværksoverførslen påvirket, du kan få klyngeinteraktivitet inden for to eller flere cloud-infra. Det er bedst at bestemme, hvor godt dine noder kan håndtere stress. Især under stresstest, før du skubber specifikke ændringer i din applikation, er det altid bedst at prøve at teste for at bestemme kapacitetsstyringen af ​​dit applikationsprodukt og afgøre, om dine nuværende databasenoder og design kan håndtere belastningen af ​​dine applikationskrav.

For mere detaljerede og detaljerede datametrics kan du få flere data ved hjælp af agentbaseret overvågning. Se nedenfor,

Sådan skal du gribe overvågningen af ​​din MariaDB-klynge an. En perfekt visualisering er altid nemmere og hurtigere at administrere. Når tingene går sydpå, har du ikke råd til at miste din produktivitet, og nedetiden kan også påvirke din virksomhed. Selvom det at have en gratis version ikke giver dig luksus og komfort, når du administrerer databaser med høj trafik; at have alarmer, meddelelser og databasestyring i ét område er et-walk-in-the-park-tilføjelser, som ClusterControl kan gøre.

Konklusion

Overvågning af dine MariaDB-databaseservere i et hybridt cloudmiljø er ikke let, og det er også kompliceret, især når der er mange tjenester og komplekse relationer, der formulerer hele stakken af ​​din teknologi. Brug af de rigtige værktøjer til overvågning hjælper dig med at administrere din applikation effektivt og forbedre produktiviteten på samme tid. Med de rigtige overvågningsværktøjer i hånden vil du også have mere tid til at fokusere på at forbedre dine applikationer sammen med andre forretningsprocesser.


  1. Kommaer i CSV-data

  2. Refaktorer fremmednøgle til felter

  3. Hvordan tilføjer jeg en tilpasset CHECK-begrænsning på en MySQL-tabel?

  4. Inkluder manglende måneder i gruppe efter forespørgsel