Overvågning af MySQL-databasers ydeevne er en daglig opgave for næsten hver MySQL DBA. I dette blogindlæg vil vi forsøge at demonstrere, hvordan du overvåger ydeevnen af dine MySQL-databaser - med ClusterControl.
Hvad skal du overvåge?
Generelt, hvis du overvåger MySQL-ydeevne, bør du nok overveje at overvåge følgende ting:
- Forespørgselsstyring - overvågning af ydeevnen af dine forespørgsler kan vise sig at være en af de mest effektive måder at forbedre MySQL-ydeevnen på.
- Detektion af forespørgselsudligger - historiske data kan fortælle os meget:de kan endda bruges til at beregne forventet forespørgselsydeevne baseret på historiske data, og derefter sammenligne den aktuelle forespørgselsydeevne med den forventede ydeevne for at opdage forespørgselsydeevner.
- Databaseskemaydelse - ClusterControl kan hjælpe dig med at optimere ydeevnen af dine MySQL-instanser ved at give skemaindsigt for at sikre, at dine skemaer er optimeret til din arbejdsbyrde.
- Belastningsbalancering - Loadbalancere som ProxySQL, HAProxy eller MaxScale kan få din database til at yde sit bedste. Disse belastningsbalancere kan nemt implementeres ved hjælp af ClusterControl.
Databasebelastningsbalancering og forespørgselsstyring ved hjælp af ClusterControl
ClusterControl understøtter følgende belastningsbalancere:
- HAProxy
- MariaDB MaxScale
- ProxySQL
- Keelived (kun virtuel IP-adresse)
Bemærk, at ClusterControl skal ligge på en uafhængig node, adskilt fra din databaseklynge.
Med hensyn til forespørgselsstyring giver ClusterControl dig mulighed for at absorbere følgende (du kan se disse ting, når du har skiftet til fanen Query Monitor):
- Du kan se de mest langsomme og langvarige forespørgsler.
- Du kan se en liste over aktuelt kørende forespørgsler.
- Du kan se en liste over forespørgselsudlignere.
Denne fane giver dig en samlet liste over alle dine mest populære forespørgsler, der kører på alle noderne i din databaseklynge. ClusterControl får oplysningerne på en af disse to måder:
- Forespørgsler hentes enten fra PERFORMANCE_SCHEMA eller
- Hvis PERFORMANCE_SCHEMA er deaktiveret eller utilgængelig, vil ClusterControl analysere indholdet af Slow Query Log.
Hvis den langsomme forespørgselslog er i brug, vil kun forespørgsler, der overskrider den lange forespørgselstid, blive vist her.
Lang forespørgselstid indsamler forespørgsler, der tager længere tid end lang forespørgselstid sekunder at udføre (hvis den lange forespørgselstid f.eks. er 0,1 vil kun forespørgsler, der tager mere end 0,1 sekunder at udføre, blive logget), " logforespørgsler, der ikke bruger indekser?" konfigurerer adfærden for ClusterControl i forhold til forespørgsler uden indeks osv.
Tabellen med øverste forespørgsler opdateres automatisk hvert 30. sekund (opdateringshastigheden kan ændres). De øverste forespørgselstabelkolonner indeholder en liste over samplede forespørgsler, databasenavne, det samlede antal forekomster af forespørgsler, antallet af rækker involveret i operationer, antallet af midlertidige tabeller oprettet til en bestemt forespørgsel osv. - listen over de aggregerede topforespørgsler kan også bestilles efter forekomst eller udførelsestid for at vise enten de mest almindelige eller de langsomste forespørgsler.
ClusterControl giver dig også mulighed for at se en liste over aktuelt kørende forespørgsler. Denne side opdateres også automatisk hvert 30. sekund, og den viser:
- MySQL-serveren, hvorfra processen hentes.
- Forbindelses-id'et.
- Databasens navn.
- MySQL-brugeren, der udsendte erklæringen.
- MySQL-trådens udførelsestid i sekunder.
- Værtsnavnet på den klient, der udsteder erklæringen.
- Den type kommando tråden udfører.
- Trådens tilstand (som forklaret i MySQL-dokumentationen)
Siden for forespørgselsudfald viser forespørgsler, der betragtes som "udliggere". Med andre ord viser denne side alle forespørgsler, der tager længere tid at udføre end en normal forespørgsel af den type, længere defineret som en latensafvigelse på 2 sigmas + gennemsnitlig forespørgselstid. Denne side viser:
- Det nøjagtige tidspunkt, hvor forespørgslen blev fanget.
- Selve forespørgslen.
- Den tid, det tog SQL-forespørgslen at udføre.
- Den gennemsnitlige udførelsestid for SQL-forespørgslen.
- Standardafvigelsens udførelsestid (mikrosekunder).
- Forespørgslens maksimale udførelsestid (mikrosekunder).
- Forespørgslens låsetid (mikrosekunder).
Fanen forespørgselsovervågning giver en oversigt over forespørgselsbehandlingen på tværs af alle noder i klynge.
Oversigt
Når det kommer til at overvåge ydeevnen af dine MySQL-databaser, kan ClusterControl gøre underværker. ClusterControl kan gøre implementeringen af load balancere enkel, det kan hjælpe dig med nemt at administrere dine forespørgsler og overvåge deres ydeevne, ClusterControl kan også beregne forventet forespørgselsydeevne baseret på historiske data.