sql >> Database >  >> RDS >> Mysql

MySQL-prestaties bewaken met ClusterControl

Het bewaken van de prestaties van MySQL-databases is een dagelijkse taak van bijna elke MySQL DBA. In deze blogpost zullen we proberen te demonstreren hoe u de prestaties van uw MySQL-databases kunt monitoren - met ClusterControl.

Wat moet u controleren?

Als u de prestaties van MySQL in de gaten houdt, moet u over het algemeen overwegen om de volgende dingen te controleren:

  • Querybeheer - het monitoren van de prestaties van uw zoekopdrachten kan een van de meest efficiënte manieren blijken te zijn om de MySQL-prestaties te verbeteren.
  • Detectie van uitschieters opvragen - historische gegevens kunnen ons veel vertellen:het kan zelfs worden gebruikt om de verwachte queryprestaties te berekenen op basis van historische gegevens, en vervolgens de huidige queryprestaties te vergelijken met de verwachte prestaties om uitbijters van de query te detecteren.
  • Databaseschemaprestaties - ClusterControl kan u helpen de prestaties van uw MySQL-instanties te optimaliseren door schema-inzichten te bieden om ervoor te zorgen dat uw schema's zijn geoptimaliseerd voor uw werklast.
  • Load Balancing - load balancers zoals ProxySQL, HAProxy of MaxScale kunnen uw database optimaal laten presteren. Die load balancers kunnen eenvoudig worden ingezet met ClusterControl.

Databasetaakverdeling en querybeheer met ClusterControl

ClusterControl ondersteunt de volgende load balancers:

  • HAProxy
  • MariaDB MaxScale
  • ProxySQL
  • Keepalived (alleen virtueel IP-adres)

Houd er rekening mee dat ClusterControl zich op een onafhankelijk knooppunt moet bevinden, los van uw databasecluster.

Met betrekking tot querybeheer kunt u met ClusterControl het volgende (u kunt deze dingen zien zodra u bent overgeschakeld naar het tabblad Query Monitor):

  • U kunt de meest trage en langlopende zoekopdrachten bekijken.
  • U kunt een lijst met momenteel lopende zoekopdrachten bekijken.
  • U kunt een lijst met uitschieters voor zoekopdrachten bekijken.

Dit tabblad biedt u een geaggregeerde lijst van al uw meest voorkomende zoekopdrachten alle knooppunten van uw databasecluster. ClusterControl krijgt de informatie op een van deze twee manieren:

  1. Query's worden opgehaald uit PERFORMANCE_SCHEMA of
  2. Als PERFORMANCE_SCHEMA is uitgeschakeld of niet beschikbaar is, zal ClusterControl de inhoud van het trage querylogboek ontleden.

Als het logboek voor trage zoekopdrachten in gebruik is, worden hier alleen zoekopdrachten weergegeven die de lange zoektijd overschrijden.

Long Query Time verzamelt query's die langer duren dan Long Query Time seconden om uit te voeren (als de Long Query Time bijvoorbeeld 0,1 is, worden alleen query's geregistreerd die meer dan 0,1 seconden nodig hebben om uit te voeren), “ log-query's die geen indexen gebruiken?" configureert het gedrag van ClusterControl met betrekking tot queries zonder indexen enz.

De bovenste querytabel wordt elke 30 seconden automatisch vernieuwd (de vernieuwingsfrequentie kan worden gewijzigd). De kolommen van de bovenste querytabel bevatten een lijst met bemonsterde query's, databasenamen, het totale aantal query-exemplaren, het aantal rijen dat betrokken is bij bewerkingen, het aantal tijdelijke tabellen dat voor een bepaalde query is gemaakt, enz. - de lijst met de geaggregeerde topquery's kan ook worden gerangschikt op Aanval of Uitvoeringstijd om ofwel de meest voorkomende of de langzaamste zoekopdrachten weer te geven.

ClusterControl stelt je ook in staat om een ​​lijst te bekijken van momenteel lopende query's. Deze pagina wordt ook automatisch elke 30 seconden vernieuwd en toont:

  • De MySQL-server waarvan het proces wordt opgehaald.
  • De verbindings-ID.
  • De databasenaam.
  • De MySQL-gebruiker die de verklaring heeft afgegeven.
  • De uitvoeringstijd van de MySQL-thread in seconden.
  • De hostnaam van de klant die de verklaring afgeeft.
  • Het type commando dat de thread uitvoert.
  • De status van de thread (zoals uitgelegd in de MySQL-documentatie)

De pagina met uitschieters voor zoekopdrachten toont zoekopdrachten die als "uitbijters" worden beschouwd. Met andere woorden, deze pagina toont alle query's die meer tijd nodig hebben om uit te voeren dan een normale query van dat type, langer wordt gedefinieerd als een latentieafwijking van 2 sigmas + gemiddelde_query_time. Deze pagina toont:

  • Het exacte tijdstip waarop de zoekopdracht is vastgelegd.
  • De zoekopdracht zelf.
  • De tijd die nodig was om de SQL-query uit te voeren.
  • De gemiddelde uitvoeringstijd van de SQL-query.
  • De uitvoeringstijd van de standaarddeviatie (microseconden).
  • De maximale uitvoeringstijd van de query (microseconden).
  • De vergrendeltijd van de query (microseconden).

Het tabblad Querymonitor geeft een overzicht van de queryverwerking op alle knooppunten in de cluster.

Samenvatting

Als het gaat om het monitoren van de prestaties van uw MySQL-databases, kan ClusterControl wonderen doen. ClusterControl kan de implementatie van load balancers eenvoudig maken, het kan u helpen uw query's eenvoudig te beheren en hun prestaties te bewaken. ClusterControl kan ook de verwachte queryprestaties berekenen op basis van historische gegevens.


  1. Script om alle verbindingen met een database te beëindigen (meer dan RESTRICTED_USER ROLLBACK)

  2. Converteer een tekenreeks met scheidingstekens naar rijen in orakel

  3. SQLite - Gegevens exporteren naar een CSV-bestand

  4. Selecteer de eerste rij van elke groep in sql