Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Überwachung der MySQL-Leistung mit ClusterControl

Die Überwachung der Leistung von MySQL-Datenbanken ist eine tägliche Aufgabe für fast jeden MySQL-DBA. In diesem Blogbeitrag versuchen wir zu demonstrieren, wie Sie die Leistung Ihrer MySQL-Datenbanken überwachen können – mit ClusterControl.

Was müssen Sie überwachen?

Wenn Sie die Leistung von MySQL überwachen, sollten Sie im Allgemeinen wahrscheinlich die folgenden Dinge überwachen:

  • Abfrageverwaltung - Die Überwachung der Leistung Ihrer Abfragen kann sich als eine der effizientesten Möglichkeiten zur Verbesserung der MySQL-Leistung erweisen.
  • Erkennung von Abfrageausreißern - Verlaufsdaten können uns viel sagen:Sie können sogar verwendet werden, um die erwartete Abfrageleistung basierend auf Verlaufsdaten zu berechnen und dann die aktuelle Abfrageleistung mit der erwarteten Leistung zu vergleichen, um Abfrageausreißer zu erkennen.
  • Leistung des Datenbankschemas - ClusterControl kann Ihnen helfen, die Leistung Ihrer MySQL-Instanzen zu optimieren, indem es Schema-Einblicke bereitstellt, um sicherzustellen, dass Ihre Schemas für Ihre Arbeitslast optimiert sind.
  • Lastenausgleich - Load Balancer wie ProxySQL, HAProxy oder MaxScale können dafür sorgen, dass Ihre Datenbank die bestmögliche Leistung erbringt. Diese Load Balancer können einfach mit ClusterControl bereitgestellt werden.

Datenbanklastenausgleich und Abfrageverwaltung mit ClusterControl

ClusterControl unterstützt die folgenden Load Balancer:

  • HAProxy
  • MariaDB MaxScale
  • ProxySQL
  • Keepalived (nur virtuelle IP-Adresse)

Beachten Sie, dass sich ClusterControl auf einem unabhängigen Knoten befinden muss, getrennt von Ihrem Datenbank-Cluster.

In Bezug auf die Abfrageverwaltung ermöglicht Ihnen ClusterControl, Folgendes aufzunehmen (Sie können diese Dinge sehen, sobald Sie auf die Registerkarte Query Monitor gewechselt haben):

  • Sie können die langsamsten und langwierigsten Abfragen anzeigen.
  • Sie können eine Liste der derzeit laufenden Abfragen anzeigen.
  • Sie können eine Liste der Abfrageausreißer anzeigen.

Diese Registerkarte bietet Ihnen eine aggregierte Liste aller Ihrer wichtigsten Abfragen, die ausgeführt werden alle Knoten Ihres Datenbank-Clusters. ClusterControl erhält die Informationen auf eine dieser beiden Arten:

  1. Abfragen werden entweder von PERFORMANCE_SCHEMA oder
  2. abgerufen
  3. Wenn PERFORMANCE_SCHEMA deaktiviert oder nicht verfügbar ist, analysiert ClusterControl den Inhalt des Protokolls für langsame Abfragen.

Wenn das Protokoll für langsame Abfragen verwendet wird, werden hier nur Abfragen aufgelistet, die die lange Abfragezeit überschreiten.

Lange Abfragezeit erfasst Abfragen, deren Ausführung länger dauert als die Sekunden der langen Abfragezeit (wenn beispielsweise die lange Abfragezeit 0,1 beträgt, werden nur Abfragen protokolliert, deren Ausführung länger als 0,1 Sekunden dauert). Log-Abfragen, die keine Indizes verwenden?“ konfiguriert das Verhalten von ClusterControl bezüglich Abfragen ohne Indizes etc.

Die Top-Queries-Tabelle wird automatisch alle 30 Sekunden aktualisiert (die Aktualisierungsrate kann geändert werden). Die Tabellenspalten der obersten Abfragen enthalten eine Liste der abgetasteten Abfragen, Datenbanknamen, die Gesamtzahl der Abfragevorkommen, die Anzahl der an Operationen beteiligten Zeilen, die Anzahl der für eine bestimmte Abfrage erstellten temporären Tabellen usw. - die Liste der aggregierten obersten Abfragen kann auch nach Vorkommen oder Ausführungszeit geordnet werden, um entweder die häufigsten oder die langsamsten Abfragen anzuzeigen.

ClusterControl ermöglicht es Ihnen auch, eine Liste der derzeit laufenden Abfragen anzuzeigen. Diese Seite wird auch automatisch alle 30 Sekunden aktualisiert und zeigt Folgendes an:

  • Der MySQL-Server, von dem der Prozess abgerufen wird.
  • Die Verbindungs-ID.
  • Der Datenbankname.
  • Der MySQL-Benutzer, der die Anweisung ausgegeben hat.
  • Die MySQL-Thread-Ausführungszeit in Sekunden.
  • Der Hostname des Clients, der die Anweisung ausgibt.
  • Der Befehlstyp, den der Thread ausführt.
  • Der Zustand des Threads (wie in der MySQL-Dokumentation erklärt)

Die Seite mit den Abfrageausreißern zeigt Abfragen, die als „Ausreißer“ betrachtet werden. Mit anderen Worten, diese Seite zeigt alle Abfragen, deren Ausführung länger dauert als eine normale Abfrage dieses Typs, wobei länger als eine Latenzabweichung von 2 Sigmas + average_query_time definiert ist. Diese Seite zeigt Folgendes an:

  • Der genaue Zeitpunkt, zu dem die Abfrage erfasst wurde.
  • Die Abfrage selbst.
  • Die Zeit, die die Ausführung der SQL-Abfrage benötigt hat.
  • Die durchschnittliche Ausführungszeit der SQL-Abfrage.
  • Die Ausführungszeit der Standardabweichung (Mikrosekunden).
  • Die maximale Ausführungszeit der Abfrage (Mikrosekunden).
  • Die Sperrzeit der Abfrage (Mikrosekunden).

Die Registerkarte Abfrageüberwachung bietet eine Zusammenfassung der Abfrageverarbeitung über alle Knoten in der Cluster.

Zusammenfassung

Wenn es um die Überwachung der Leistung Ihrer MySQL-Datenbanken geht, kann ClusterControl Wunder bewirken. ClusterControl kann die Bereitstellung von Load Balancern vereinfachen, es kann Ihnen helfen, Ihre Abfragen einfach zu verwalten und ihre Leistung zu überwachen, ClusterControl kann auch die erwartete Abfrageleistung basierend auf historischen Daten berechnen.