Database
 sql >> Datenbank >  >> RDS >> Database

Leistungsüberwachung für TimescaleDB

ClusterControl ist ein benutzerfreundliches Tool zur Überwachung der Leistung von TimescaleDB in Echtzeit. Es bietet Dutzende von vordefinierten Diagrammen zur Anzeige einer Vielzahl von Leistungsstatistiken, beispielsweise zu Benutzern, Durchsatz, Tablespaces, Redo-Logs, Puffern, Caches und I/O. Es bietet auch Echtzeitinformationen zur Datenbankauslastung. Mein Kollege Sebastian hat zuvor darüber geschrieben, wie TimescaleDB einfach bereitgestellt werden kann. In diesem Blog zeigen wir Ihnen, wie Sie verschiedene Aspekte der Performance von TimescaleDB mit ClusterControl überwachen können. Erlauben Sie mir zunächst, eine kleine Einführung in TimescaleDB zu geben.

TimescaleDB ist als Erweiterung von PostgreSQL implementiert, was bedeutet, dass eine Timescale-Datenbank innerhalb einer PostgreSQL-Instanz ausgeführt wird. Das Erweiterungsmodell ermöglicht es der Datenbank, viele Attribute von PostgreSQL zu nutzen, wie z. B. Zuverlässigkeit, Sicherheit und Konnektivität zu einer Vielzahl von Tools von Drittanbietern. Gleichzeitig nutzt TimescaleDB den hohen Grad an Anpassungsmöglichkeiten, der für Erweiterungen verfügbar ist, indem es Hooks tief in den Abfrageplaner, das Datenmodell und die Ausführungs-Engine von PostgreSQL einfügt. Sein Ökosystem spricht die Muttersprache von PostgreSQL und fügt spezialisierte Funktionen (und Abfrageoptimierungen) für die Arbeit mit Zeitreihendaten hinzu. Einer der Vorteile, die TimescaleDB gegenüber anderen spezialisierten Datenspeichern zum Speichern von IoT- oder Zeitreihendaten bietet, besteht darin, dass Sie die SQL-Syntax verwenden können, was bedeutet, dass Sie die Vorteile von JOINs nutzen können. Daher ist das Abfragen diverser Metadaten für Entwickler einfacher – es vereinfacht ihren Stack und eliminiert Datensilos.

TimescaleDB wurde mit Hunderten von Milliarden Zeilen getestet und bewertet und skaliert sehr gut – insbesondere mit Upserts oder Inserts im Vergleich zu Vanilla PostgreSQL. Wenn Sie an ihren Benchmarking-Tools interessiert sind, sollten Sie einen Blick auf ihre Time Series Benchmark Suite (TSBS) werfen.

Die Verwendung von TimescaleDB ist ziemlich einfach, wenn Sie mit einem RDBMS wie MySQL oder PostgreSQL vertraut sind. Sie müssen Ihre Datenbank angeben und eine Erweiterung für die TimescaleDB erstellen. Nach der Erstellung erstellen Sie dann eine Hypertabelle, die praktisch alle Benutzerinteraktionen mit TimescaleDB verarbeitet. Siehe ein Beispiel unten:

nyc_data=# CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
WARNING:  
WELCOME TO
 _____ _                               _     ____________  
|_   _(_)                             | |    |  _  \ ___ \ 
  | |  _ _ __ ___   ___  ___  ___ __ _| | ___| | | | |_/ / 
  | | | |  _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \ 
  | | | | | | | | |  __/\__ \ (_| (_| | |  __/ |/ /| |_/ /
  |_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/
               Running version 1.2.2
For more information on TimescaleDB, please visit the following links:

 1. Getting started: https://docs.timescale.com/getting-started
 2. API reference documentation: https://docs.timescale.com/api
 3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture

Note: TimescaleDB collects anonymous reports to better understand and assist our users.
For more information and how to disable, please see our docs https://docs.timescaledb.com/using-timescaledb/telemetry.

CREATE EXTENSION
nyc_data=# SELECT create_hypertable('rides_count', 'one_hour');
    create_hypertable     
--------------------------
 (1,public,rides_count,t)
(1 row)

So einfach ist das. Sobald die Datenmenge jedoch groß wird, wäre eine Folgefrage, die Sie möglicherweise haben, „Wie können Sie die Leistung von TimescaleDB überwachen“? Nun, darum geht es in unserem Blog. Mal sehen, wie Sie das mit ClusterControl machen können.

Überwachung von TimescaleDB-Clustern

Die Überwachung eines TimescaleDB-Clusters in ClusterControl entspricht fast der Überwachung eines PostgreSQL-Datenbankclusters. Wir haben Diagramme auf Cluster- und Knotenebene, Dashboards, Topologien, Abfrageüberwachung und Leistung. Lassen Sie uns jeden von diesen durchgehen.

Die Registerkarte "Übersicht"

Die Übersichtsdiagramme finden Sie unter Cluster → Übersicht Registerkarte.

In dieser Ansicht können Sie die Serverlast, die Cache-Trefferquote anzeigen oder nach anderen Metriken filtern – Blocks-Hit, Blocks-Read, Commits oder Anzahl der Verbindungen.

Sie können hier auch Ihre benutzerdefinierten Dashboard-Einstellungen erstellen, genau wie in meinem Beispiel unten, das Blocks-Hit und Blocks-Read abruft.

Dies ist ein guter Ausgangspunkt, um die Netzwerkaktivität zu überwachen, die Übertragung zu überprüfen und Pakete zu empfangen.

Die Registerkarte "Knoten"

Die Knotendiagramme können gefunden werden, indem Sie zu Cluster → Knoten gehen Tab. Diese enthält eine detaillierte Ansicht Ihrer Knoten mit Metriken auf Host- und Datenbankebene. Siehe folgendes Diagramm:

Sie können auch die Top-Prozesse überprüfen, die im Hostsystem ausgeführt werden, wenn Sie auf "Top" klicken " Tab. Siehe Beispiel-Screenshot unten:

Es gibt auch einige Funktionen, wenn Sie mit der rechten Maustaste auf den Knoten klicken, mit denen Sie die WAL-Archivierung aktivieren oder den PostgreSQL-Daemon neu starten oder den Host neu starten können. Siehe Bild wie unten gezeigt:

Dies kann hilfreich sein, wenn Sie Wartungsarbeiten an einem leistungsschwachen Knoten planen möchten.

Die Registerkarte "Dashboards"

Dashboards wurde erst letztes Jahr veröffentlicht und mit der Unterstützung von PostgreSQL-Dashboards können Sie diese Diagramme nutzen. Zum Beispiel habe ich 1 Million Zeilen in die Datenbank nyc_data eingefügt. Sehen Sie unten, wie es sich im PostgreSQL-Übersichts-Dashboard widerspiegelt:

Nach dem Einfügen der 1,1 M Zeilen können wir sehen, dass der Knoten 192.168.70.40 immer noch performant ist und es keine Anzeichen für eine hohe CPU- und Festplattenauslastung gibt. Sehen Sie sich das folgende Dashboard an, während wir seine Leistung überwachen:

Neben dem Cluster-Übersichts-Dashboard können Sie sich auch eine detaillierte Ansicht der Systemleistung anzeigen lassen. Siehe Bild unten:

Die Registerkarte "Topologie"

Diese Registerkarte ist einfach, bietet jedoch eine Ansicht Ihrer Master-Slave-Replikationstopologie. Es gibt Ihnen kurze, aber prägnante Informationen darüber, wie sich Ihr Herr und Ihre Sklaven verhalten. Siehe Bild unten:

Die Registerkarte "Abfragemonitor"

Die Überwachung von Abfragen in TimescaleDB ist sowohl für einen DBA als auch für die Entwickler, die die Anwendungslogik handhaben, sehr wichtig. Diese Registerkarte ist sehr wichtig, um zu verstehen, wie Abfragen ausgeführt werden. Sie können hier die häufigsten Abfragen, laufende Abfragen, Abfrageausreißer und Abfragestatistiken anzeigen. Beispielsweise können Sie die Abfragen anzeigen, die auf allen Hosts ausgeführt werden, oder Sie können basierend auf dem Knoten filtern, den Sie überwachen möchten. Ein Beispiel unten zeigt, wie es aussieht, wenn es unter dem Abfragemonitor angezeigt wird.

Wenn Sie Statistiken über Ihre TimescaleDB-Chunks/Indizes sammeln möchten, können Sie dies hier unter Abfragestatistiken nutzen. Es zeigt eine Liste Ihrer Indizes, die von TimescaleDB verwendet werden. Siehe Bild unten:

Sie können nicht nur die Statistiken bestimmter Indizes anzeigen, sondern sie auch nach Tabellen-I/O-Statistiken, Index-I/O-Statistiken oder exklusiven Sperrwartezeiten filtern. Daher können Sie die anderen Elemente in der "Statistik"-Liste überprüfen, die Sie lieber überwachen möchten.

Die Registerkarte "Leistung"

Auf dieser Registerkarte können Sie die zur Optimierung und Optimierung festgelegten Variablen überprüfen, Berater einrichten, das Datenbankwachstum überprüfen und eine Schemaanalyse erstellen, um Tabellen ohne Primärschlüssel zu sammeln.

Beispielsweise können Sie die verfügbaren Knoten im Setup nebeneinander anzeigen und Variablen vergleichen. Siehe Registerkarte unten:

Das ist alles für jetzt. Es wäre großartig, Ihr Feedback zu hören und uns vor allem mitzuteilen, was wir vermissen.