sql >> Database >  >> RDS >> Database

Prestatiebewaking voor TimescaleDB

ClusterControl is een gebruiksvriendelijke tool voor het in realtime bewaken van de prestaties van TimescaleDB. Het biedt tientallen vooraf gedefinieerde grafieken voor het weergeven van een breed scala aan prestatiestatistieken met betrekking tot bijvoorbeeld gebruikers, doorvoer, tabelruimten, redo-logs, buffers, caches en I/O. Het biedt ook realtime informatie over de werkbelasting van de database. Mijn collega Sebastian schreef eerder over het eenvoudig inzetten van TimescaleDB. In deze blog laten we u zien hoe u verschillende aspecten van TimescaleDB-prestaties kunt monitoren met ClusterControl. Sta me allereerst toe een korte introductie te geven over TimescaleDB.

TimescaleDB is geïmplementeerd als een extensie op PostgreSQL, wat betekent dat een Timescale-database wordt uitgevoerd binnen een PostgreSQL-instantie. Dankzij het uitbreidingsmodel kan de database profiteren van veel van de kenmerken van PostgreSQL, zoals betrouwbaarheid, beveiliging en connectiviteit met een breed scala aan tools van derden. Tegelijkertijd maakt TimescaleDB gebruik van de hoge mate van aanpassing die beschikbaar is voor extensies door hooks toe te voegen diep in de queryplanner, het gegevensmodel en de uitvoeringsengine van PostgreSQL. Het ecosysteem spreekt de moedertaal die PostgreSQL doet, en voegt gespecialiseerde functies (en query-optimalisaties) toe voor het werken met tijdreeksgegevens. Een van de voordelen die TimescaleDB biedt ten opzichte van andere gespecialiseerde datastores voor het opslaan van IoT- of tijdreeksgegevens, is dat u SQL-syntaxis kunt gebruiken, wat betekent dat u kunt profiteren van JOIN's. Dus het opvragen van diverse metadata is gemakkelijker voor ontwikkelaars - het vereenvoudigt hun stapel en elimineert datasilo's.

TimescaleDB is getest en gebenchmarkt met honderden miljarden rijen, en het schaalt zeer goed - vooral met upserts of inserts in vergelijking met vanille PostgreSQL. Als u geïnteresseerd bent in hun benchmarkingtools, kunt u overwegen een kijkje te nemen in hun Time Series Benchmark Suite (TSBS).

Het gebruik van TimescaleDB is vrij eenvoudig als u bekend bent met een RDBMS zoals MySQL of PostgreSQL. U moet uw database specificeren en een extensie maken voor de TimescaleDB. Eenmaal gemaakt, maakt u vervolgens een Hypertable, die vrijwel alle gebruikersinteracties met TimescaleDB afhandelt. Zie hieronder een voorbeeld:

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)

Simpel als dat. Zodra de gegevens echter groot worden, zou een vervolgvraag kunnen zijn:"Hoe kunt u de prestaties van TimescaleDB controleren"? Nou, dit is waar onze blog over gaat. Laten we eens kijken hoe u dit kunt doen met ClusterControl.

TijdschaalDB-clusters bewaken

Het bewaken van een TimescaleDB-cluster in ClusterControl is bijna hetzelfde als het bewaken van een PostgreSQL-databasecluster. We hebben grafieken op cluster- en knooppuntniveau, dashboards, topologieën, querybewaking en prestaties. Laten we elk van deze eens doornemen.

Het tabblad "Overzicht"

De overzichtsgrafieken kunnen worden gevonden door naar Cluster → Overzicht te gaan tabblad.

In deze weergave kunt u de serverbelasting, de cache-hitratio of filteren op andere statistieken - block-hit, block-read, commits of aantal verbindingen.

U kunt hier ook uw aangepaste dashboardinstellingen maken, net zoals in mijn voorbeeld hieronder, dat blocks-hit en blocks-read ophaalt.

Dit is een goede plek om te beginnen en om de netwerkactiviteit te controleren, de overdracht te controleren en pakketten te ontvangen.

Het tabblad "Knooppunten"

De knooppuntgrafieken kunnen worden gelokaliseerd door naar Cluster → Knooppunten te gaan tabblad. Dit bevat een diepgaand overzicht van uw nodes, met metrische gegevens op host- en databaseniveau. Zie onderstaande grafiek:

U kunt ook de belangrijkste processen in het hostsysteem controleren als u op "Top" klikt " tab. Zie een voorbeeld screenshot hieronder:

Er zijn ook enkele functies wanneer u met de rechtermuisknop op het knooppunt klikt, waarbij u WAL-archivering kunt inschakelen of de PostgreSQL-daemon opnieuw kunt starten of de host opnieuw kunt opstarten. Zie afbeelding zoals hieronder getoond:

Dit kan handig zijn als u onderhoud wilt plannen op een ondermaats presterend knooppunt.

Het tabblad "Dashboards"

Dashboards is vorig jaar net uitgebracht en met de ondersteuning van PostgreSQL-dashboards kunt u profiteren van deze grafieken. Ik heb bijvoorbeeld 1M rijen ingevoegd in de nyc_data-database. Zie hieronder hoe het wordt weergegeven in het PostgreSQL-overzichtsdashboard:

Na het invoegen van de rijen van 1,1 M, kunnen we zien dat het knooppunt 192.168.70.40 nog steeds presteert en dat er geen teken is van een hoog CPU- en hoog schijfgebruik. Bekijk het volgende dashboard terwijl we de prestaties ervan volgen:

Naast het clusteroverzichtsdashboard kunt u ook een gedetailleerd overzicht van de systeemprestaties krijgen. Zie onderstaande afbeelding:

Het tabblad "Topologie"

Dit tabblad is eenvoudig, maar biedt een overzicht van uw master-slave-replicatietopologie. Het geeft je korte maar beknopte informatie over hoe je meester en slaven presteren. Zie onderstaande afbeelding:

Het tabblad "Query Monitor"

Het bewaken van query's in TimescaleDB is erg belangrijk voor zowel een DBA als de ontwikkelaars die de toepassingslogica afhandelen. Dit tabblad is erg belangrijk om te begrijpen hoe query's presteren. U kunt hier de belangrijkste zoekopdrachten, lopende zoekopdrachten, uitbijters van zoekopdrachten en zoekopdrachtstatistieken bekijken. U kunt bijvoorbeeld de query's bekijken die op alle hosts worden uitgevoerd, of u kunt filteren op basis van het knooppunt dat u probeert te bewaken. Een voorbeeld hieronder laat zien hoe het eruit ziet wanneer het wordt bekeken onder de Query Monitor.

Als u statistieken van uw TimescaleDB-chunks/indexen wilt verzamelen, kunt u hier onder Querystatistieken uw voordeel mee doen. Het toont een lijst van uw indexen die worden gebruikt door TimescaleDB. Zie onderstaande afbeelding:

U kunt niet alleen de statistieken van specifieke indexen bekijken, u kunt deze ook filteren op de tabel-I/O-statistieken, index-I/O-statistieken of de exclusieve lock-wachttijden. Daarom kunt u de andere items in de lijst "Statistieken" bekijken die u het liefst in de gaten houdt.

Het tabblad "Prestaties"

Op dit tabblad kunt u de variabelen bekijken die zijn ingesteld voor optimalisatie en afstemming, adviseurs instellen, de databasegroei controleren en een schemaanalyse genereren om tabellen te verzamelen zonder primaire sleutels.

U kunt bijvoorbeeld de beschikbare knooppunten in de setup naast elkaar bekijken en variabelen vergelijken. Zie tabblad hieronder:

Dat is het voor nu. Het zou geweldig zijn om uw feedback te horen, en laat ons vooral weten wat we missen.


  1. Voeg twee partities samen tot één in SQL Server (T-SQL)

  2. Spreadsheets versus databases:is het tijd om over te stappen? Deel 1

  3. Hoe extensies voor oci8 (Oracle) in php.ini in te schakelen - PHP-waarschuwing:PHP Startup:in Unknown on line 0

  4. oracle - converteer veel datumnotaties naar een enkele opgemaakte datum