sql >> Databasteknik >  >> RDS >> Database

Prestandaövervakning för TimescaleDB

ClusterControl är ett lättanvänt verktyg för att övervaka prestandan för TimescaleDB i realtid. Den tillhandahåller dussintals fördefinierade diagram för att visa ett brett utbud av prestandastatistik avseende användare, genomströmning, tabellutrymmen, gör om loggar, buffertar, cachar och I/O, till exempel. Det ger också realtidsinformation om databas arbetsbelastning. Min kollega Sebastian skrev tidigare om hur man enkelt distribuerar TimescaleDB. I den här bloggen kommer vi att visa dig hur du övervakar olika aspekter av TimescaleDB-prestanda med ClusterControl. Låt mig först och främst ge en liten introduktion om TimescaleDB.

TimescaleDB är implementerat som en förlängning på PostgreSQL, vilket innebär att en Timescale-databas körs i en PostgreSQL-instans. Tilläggsmodellen gör att databasen kan dra nytta av många av PostgreSQL-attributen som tillförlitlighet, säkerhet och anslutning till ett brett utbud av tredjepartsverktyg. Samtidigt utnyttjar TimescaleDB den höga graden av anpassning som är tillgänglig för tillägg genom att lägga till krokar djupt i PostgreSQL:s frågeplanerare, datamodell och exekveringsmotor. Dess ekosystem talar det modersmål som PostgreSQL gör, och lägger till specialiserade funktioner (och frågeoptimeringar) för att arbeta med tidsseriedata. En av fördelarna som TimescaleDB erbjuder jämfört med andra specialiserade databutiker för lagring av IoT eller tidsseriedata är att du kan använda SQL-syntax vilket innebär att du kan dra fördel av JOINs. Så det är lättare för utvecklare att söka olika metadata – det förenklar deras stack och eliminerar datasilos.

TimescaleDB har testats och riktmärkts med hundratals miljarder rader, och den skalas mycket bra – speciellt med upserts eller inserts i jämförelse med vanilla PostgreSQL. Om du är intresserad av deras benchmarkingverktyg kan du överväga att ta en titt på deras Time Series Benchmark Suite (TSBS).

Att använda TimescaleDB är ganska enkelt om du är bekant med en RDBMS som MySQL eller PostgreSQL. Du måste ange din databas och skapa ett tillägg för TimescaleDB. När du väl har skapats skapar du sedan en hypertabell, som praktiskt taget hanterar alla användarinteraktioner med TimescaleDB. Se ett exempel nedan:

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)

Enkelt är det. Men när data blir stor, skulle en uppföljningsfråga du kan ha vara "Hur kan du övervaka prestandan för TimescaleDB"? Det är vad vår blogg handlar om. Låt oss se hur du kan göra detta med ClusterControl.

Övervaka TimescaleDB-kluster

Att övervaka ett TimescaleDB-kluster i ClusterControl är nästan detsamma som att övervaka ett PostgreSQL-databaskluster. Vi har graferna på kluster- och nodnivå, instrumentpaneler, topologier, frågeövervakning och prestanda. Låt oss gå igenom var och en av dessa.

Fliken "Översikt"

Översiktsgraferna kan hittas genom att gå till Kluster → Översikt flik.

I den här vyn kan du se serverbelastning, cacheträffförhållande eller filtrera på andra mätvärden - blocks-hit, blocks-read, commits eller antal anslutningar.

Du kan också skapa dina anpassade instrumentpanelsinställningar här precis som mitt exempel nedan som hämtar block-hit och blocks-read.

Det här är ett bra ställe att börja samtidigt som du övervakar nätverksaktivitet, kontrollerar överföringen och tar emot paket.

Fliken "Noder"

Nodgraferna kan lokaliseras genom att gå till Kluster → Noder flik. Det här innehåller en djupgående bild av dina noder, med mätvärden på värd- och databasnivå. Se grafen nedan:

Du kan också kontrollera de bästa processerna som körs i värdsystemet om du klickar på "Överst ". Se ett exempel på en skärmdump nedan:

Det finns också några funktioner när du högerklickar på noden där du kan aktivera WAL-arkivering eller starta om PostgreSQL-demonen eller starta om värden. Se bilden som visas nedan:

Detta kan vara användbart om du vill schemalägga underhåll på en underpresterande nod.

Fliken "Dashboards"

Dashboards släpptes precis förra året och med stöd av PostgreSQL-dashboards kan du dra nytta av dessa grafer. Till exempel infogade jag 1M rader i nyc_data-databasen. Se nedan hur det återspeglas i översiktspanelen för PostgreSQL:

Efter att ha satt in 1,1 M raderna kan vi se att noden 192.168.70.40 fortfarande fungerar och det finns inga tecken på hög CPU och högt diskutnyttjande. Se följande instrumentpanel medan vi övervakar dess prestanda:

Förutom Cluster Overview Dashboard kan du också få en detaljerad bild av systemets prestanda. Se bilden nedan:

Fliken "Topologi"

Den här fliken är enkel men erbjuder en vy av din master-slave replikeringstopologi. Den ger dig kort men koncis information om hur din herre och slavar presterar. Se bilden nedan:

Fliken "Frågeövervakare"

Övervakning av frågor i TimescaleDB är mycket viktigt för en DBA såväl som för utvecklarna som hanterar applikationslogiken. Den här fliken är mycket viktig för att förstå hur frågorna fungerar. Här kan du se de vanligaste frågorna, löpande frågorna, frågeavvikelserna och frågestatistiken. Du kan till exempel se frågor som körs på alla värdar, eller så kan du filtrera baserat på noden du försöker övervaka. Ett exempel nedan visar hur det ser ut när det visas under Query Monitor.

Om du vill samla statistik över dina TimescaleDB-bitar/index kan du dra fördel här under Frågastatistik. Den visar en lista över dina index som används av TimescaleDB. Se bilden nedan:

Du kan inte bara se statistiken för specifika index, du kan också filtrera den efter dess tabell-I/O-statistik, index-I/O-statistik eller dess exklusiva låsväntningar. Därför kan du kolla in de andra objekten i listan "Statistik" som du föredrar att övervaka.

Fliken "Prestanda"

Under den här fliken är det här du kan granska variablerna som är inställda för optimering och justering, konfigurera rådgivare, kontrollera databasens tillväxt och generera en schemaanalys för att samla tabeller utan primärnycklar.

Till exempel kan du se de tillgängliga noderna sida vid sida i inställningen och jämföra variabler. Se fliken nedan:

Det var allt tills vidare. Det skulle vara fantastiskt att höra din feedback, och framför allt berätta för oss vad vi saknar.


  1. Postgresql enum vad är fördelarna och nackdelarna?

  2. Lägg till intervall till tidsstämpeln med Ecto Fragments

  3. Varför använder SQL Server indexskanning istället för indexsökning när WHERE-satsen innehåller parametriserade värden

  4. Det mest eleganta sättet att generera permutationer i SQL-server