Database
 sql >> Base de données >  >> RDS >> Database

Surveillance des performances pour TimescaleDB

ClusterControl est un outil facile à utiliser pour surveiller les performances de TimescaleDB en temps réel. Il fournit des dizaines de graphiques prédéfinis pour afficher une grande variété de statistiques de performances concernant les utilisateurs, le débit, les espaces de table, les journaux redo, les tampons, les caches et les E/S, par exemple. Il fournit également des informations en temps réel sur la charge de travail de la base de données. Mon collègue Sebastian a déjà écrit sur la façon de déployer facilement TimescaleDB. Dans ce blog, nous allons vous montrer comment surveiller différents aspects des performances de TimescaleDB avec ClusterControl. Tout d'abord, permettez-moi de vous présenter brièvement TimescaleDB.

TimescaleDB est implémenté en tant qu'extension sur PostgreSQL, ce qui signifie qu'une base de données Timescale s'exécute dans une instance PostgreSQL. Le modèle d'extension permet à la base de données de tirer parti de nombreux attributs de PostgreSQL tels que la fiabilité, la sécurité et la connectivité à un large éventail d'outils tiers. Dans le même temps, TimescaleDB tire parti du degré élevé de personnalisation disponible pour les extensions en ajoutant des crochets en profondeur dans le planificateur de requêtes, le modèle de données et le moteur d'exécution de PostgreSQL. Son écosystème parle le langage natif de PostgreSQL et ajoute des fonctions spécialisées (et des optimisations de requêtes) pour travailler avec des données de séries chronologiques. L'un des avantages que TimescaleDB offre par rapport aux autres magasins de données spécialisés pour le stockage de données IoT ou de séries chronologiques est que vous pouvez utiliser la syntaxe SQL, ce qui signifie que vous pouvez tirer parti des JOIN. Ainsi, l'interrogation de diverses métadonnées est plus facile pour les développeurs :cela simplifie leur pile et élimine les silos de données.

TimescaleDB a été testé et comparé avec des centaines de milliards de lignes, et il évolue très bien - en particulier avec des upserts ou des insertions par rapport à la vanille PostgreSQL. Si vous êtes intéressé par leurs outils d'analyse comparative, vous pouvez envisager de jeter un œil à leur Time Series Benchmark Suite (TSBS).

L'utilisation de TimescaleDB est assez simple si vous êtes familier avec un SGBDR tel que MySQL ou PostgreSQL. Vous devez spécifier votre base de données et créer une extension pour TimescaleDB. Une fois créé, vous créez ensuite une hypertable, qui gère virtuellement toutes les interactions des utilisateurs avec TimescaleDB. Voir un exemple ci-dessous :

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)

Aussi simple que cela. Cependant, une fois que les données deviennent volumineuses, une question de suivi que vous pourriez vous poser serait "Comment pouvez-vous surveiller les performances de TimescaleDB" ? Eh bien, c'est de cela qu'il s'agit sur notre blog. Voyons comment vous pouvez faire cela avec ClusterControl.

Surveillance des clusters TimescaleDB

La surveillance d'un cluster TimescaleDB dans ClusterControl est presque identique à la surveillance d'un cluster de base de données PostgreSQL. Nous avons les graphiques, les tableaux de bord, les topologies, la surveillance des requêtes et les performances au niveau du cluster et du nœud. Passons en revue chacun d'eux.

L'onglet "Aperçu"

Les graphiques de vue d'ensemble peuvent être localisés en allant sur Cluster → Vue d'ensemble onglet.

Sur cette vue, vous pouvez afficher la charge du serveur, le taux d'accès au cache ou filtrer sur d'autres métriques :accès aux blocs, lectures de blocs, validations ou nombre de connexions.

Vous pouvez également créer vos paramètres de tableau de bord personnalisés ici, tout comme mon exemple ci-dessous, qui récupère les blocs touchés et les blocs lus.

C'est un bon point de départ pour surveiller l'activité du réseau, vérifier le transfert et recevoir des paquets.

L'onglet "Nœuds"

Les graphes de nœuds peuvent être localisés en allant dans Cluster → Nodes languette. Celui-ci contient une vue détaillée de vos nœuds, avec des métriques au niveau de l'hôte et de la base de données. Voir le graphique ci-dessous :

Vous pouvez également vérifier les principaux processus en cours d'exécution dans le système hôte si vous cliquez sur "Top ". Voir un exemple de capture d'écran ci-dessous :

Il existe également certaines fonctionnalités en cliquant avec le bouton droit sur le nœud dans lesquelles vous pouvez activer l'archivage WAL ou redémarrer le démon PostgreSQL ou redémarrer l'hôte. Voir l'image ci-dessous :

Cela peut être utile si vous souhaitez planifier la maintenance d'un nœud sous-performant.

L'onglet "Tableaux de bord"

Dashboards vient d'être publié l'année dernière et avec le support des tableaux de bord PostgreSQL, vous pouvez tirer parti de ces graphiques. Par exemple, j'ai inséré 1 million de lignes dans la base de données nyc_data. Voir ci-dessous comment cela se reflète dans le tableau de bord de présentation de PostgreSQL :

Après avoir inséré les lignes de 1,1 M, nous pouvons voir que le nœud 192.168.70.40 est toujours performant et qu'il n'y a aucun signe d'utilisation élevée du processeur et du disque. Consultez le tableau de bord suivant pendant que nous surveillons ses performances :

Outre le tableau de bord de présentation du cluster, vous pouvez également avoir une vue granulaire des performances du système. Voir l'image ci-dessous :

L'onglet "Topologie"

Cet onglet est simple mais offre une vue de votre topologie de réplication maître-esclave. Il vous donne des informations brèves mais concises sur les performances de votre maître et de vos esclaves. Voir l'image ci-dessous :

L'onglet "Moniteur de requête"

La surveillance des requêtes dans TimescaleDB est très importante pour un DBA ainsi que pour les développeurs qui gèrent la logique de l'application. Cet onglet est très important pour comprendre le fonctionnement des requêtes. Vous pouvez afficher ici les principales requêtes, les requêtes en cours d'exécution, les valeurs aberrantes des requêtes et les statistiques des requêtes. Par exemple, vous pouvez afficher les requêtes en cours d'exécution sur tous les hôtes, ou vous pouvez filtrer en fonction du nœud que vous essayez de surveiller. Un exemple ci-dessous montre à quoi il ressemble lorsqu'il est affiché sous le moniteur de requête.

Si vous souhaitez collecter des statistiques sur vos segments/index TimescaleDB, vous pouvez en profiter ici sous Query Statistics. Il affiche une liste de vos index utilisés par TimescaleDB. Voir l'image ci-dessous :

Non seulement vous pouvez afficher les statistiques d'index spécifiques, mais vous pouvez également les filtrer en fonction de ses statistiques d'E/S de table, de ses statistiques d'E/S d'index ou de ses attentes de verrouillage exclusives. Vous pouvez donc consulter les autres éléments de la liste "Statistiques" que vous préférez surveiller.

L'onglet "Performances"

Sous cet onglet, c'est là que vous pouvez examiner les variables définies pour l'optimisation et le réglage, configurer des conseillers, vérifier la croissance de la base de données et générer une analyse de schéma pour rassembler des tables sans clés primaires.

Par exemple, vous pouvez afficher côte à côte les nœuds disponibles dans la configuration et comparer les variables. Voir l'onglet ci-dessous :

C'est tout pour le moment. Ce serait formidable d'entendre vos commentaires, et surtout de nous faire savoir ce qui nous manque.