Att övervaka prestandan för MySQL-databaser är en daglig uppgift för nästan varje MySQL DBA. I det här blogginlägget kommer vi att försöka demonstrera hur du övervakar prestandan för dina MySQL-databaser - med ClusterControl.
Vad behöver du övervaka?
I allmänhet, om du övervakar MySQL-prestanda, bör du förmodligen överväga att övervaka följande saker:
- Frågehantering - att övervaka prestandan för dina frågor kan visa sig vara ett av de mest effektiva sätten att förbättra MySQL-prestandan.
- Frågeavvikande upptäckt - historisk data kan säga oss mycket:den kan till och med användas för att beräkna förväntad frågeprestanda baserat på historisk data, och sedan jämföra den aktuella frågeprestanda med den förväntade prestandan för att upptäcka frågeavvikelser.
- Databasschemaprestanda - ClusterControl kan hjälpa dig att optimera prestandan för dina MySQL-instanser genom att tillhandahålla schemainsikter för att säkerställa att dina scheman är optimerade för din arbetsbelastning.
- Lastbalansering - Lastbalanserare som ProxySQL, HAProxy eller MaxScale kan få din databas att prestera efter bästa förmåga. Dessa lastbalanserare kan enkelt distribueras med ClusterControl.
Databasbelastningsbalansering och frågehantering med ClusterControl
ClusterControl stöder följande lastbalanserare:
- HAProxy
- MariaDB MaxScale
- ProxySQL
- Bevarad (endast virtuell IP-adress)
Observera att ClusterControl måste finnas på en oberoende nod, separat från ditt databaskluster.
När det gäller frågehantering låter ClusterControl dig absorbera följande (du kan se dessa saker när du har bytt till fliken Query Monitor):
- Du kan se vanliga långsamma och långvariga frågor.
- Du kan se en lista över aktuella frågor.
- Du kan se en lista över avvikande frågor.
Den här fliken ger dig en samlad lista över alla dina vanligaste frågor som körs på alla noder i ditt databaskluster. ClusterControl får informationen på ett av dessa två sätt:
- Frågor hämtas antingen från PERFORMANCE_SCHEMA eller
- Om PERFORMANCE_SCHEMA är inaktiverat eller otillgängligt kommer ClusterControl att analysera innehållet i den långsamma frågeloggen.
Om den långsamma frågeloggen används kommer endast frågor som överskrider den långa frågetiden att listas här.
Lång frågetid samlar in frågor som tar längre tid än lång frågetid sekunder att köra (till exempel om den långa frågetiden är 0,1 loggas bara frågor som tar mer än 0,1 sekunder att köra), " logga frågor som inte använder index?" konfigurerar beteendet hos ClusterControl med avseende på frågor utan index etc.
Den översta frågetabellen uppdateras automatiskt var 30:e sekund (uppdateringsfrekvensen kan ändras). Kolumnerna i de översta frågetabellerna innehåller en lista med samplade frågor, databasnamn, det totala antalet frågeförekomster, antalet rader involverade i operationer, antalet temporära tabeller som skapats för en viss fråga etc. - listan över de aggregerade toppfrågorna kan också beställas efter förekomst eller exekveringstid för att visa antingen de vanligaste eller långsammaste frågorna.
ClusterControl låter dig också se en lista över aktuella frågor. Den här sidan uppdateras också automatiskt var 30:e sekund och den visar:
- MySQL-servern från vilken processen hämtas.
- Anslutnings-ID.
- Databasnamnet.
- MySQL-användaren som utfärdade uttalandet.
- Exekveringstiden för MySQL-tråden i sekunder.
- Värdnamnet på klienten som utfärdar uttalandet.
- Typen av kommando som tråden kör.
- Trådens tillstånd (som förklaras i MySQL-dokumentationen)
Frågeavvikelser-sidan visar frågor som betraktas som "avvikande". Med andra ord visar den här sidan alla frågor som tar längre tid att köra än en normal fråga av den typen, längre definierad som en latensavvikelse på 2 sigmas + genomsnittlig fråga_tid. Den här sidan visar:
- Den exakta tidpunkten då frågan registrerades.
- Själva frågan.
- Tiden som SQL-frågan tog att köra.
- Den genomsnittliga exekveringstiden för SQL-frågan.
- Exekveringstiden för standardavvikelsen (mikrosekunder).
- Frågans maximala exekveringstid (mikrosekunder).
- Frågans låstid (mikrosekunder).
Frågeövervakningsfliken ger en sammanfattning av frågebehandlingen över alla noder i kluster.
Sammanfattning
När det gäller att övervaka prestandan för dina MySQL-databaser kan ClusterControl göra underverk. ClusterControl kan göra implementeringen av lastbalanserare enkel, det kan hjälpa dig att enkelt hantera dina frågor och övervaka deras prestanda, ClusterControl kan också beräkna förväntad frågeprestanda baserat på historiska data.