Les performances de notre base de données MariaDB sont l'un des domaines que nous souhaitons surveiller et observer de près dans un environnement de production et ses conditions d'exécution en temps opportun. Cela peut être extrêmement exigeant en termes de temps, de travail et d'argent si la configuration architecturale utilise un cloud hybride. De plus, il y a certains domaines à examiner, en particulier l'intermédiaire de réseau qui sert sa connectivité en tant que cloud sur site ou privé qui communique avec le cloud public (GCP, AWS, Azure, etc.) et vice versa. .
Ce blog porte sur la surveillance des performances de vos bases de données MariaDB sur une infrastructure de cloud hybride. Nous vous fournirons les bases et les indicateurs clés les plus importants lors de la surveillance des performances de votre base de données MariaDB dans une configuration de cloud hybride.
Pourquoi avez-vous besoin de la surveillance des performances ?
Sur un Cloud hybride, il peut être compliqué de surveiller chaque service dont vous bénéficiez. Contrairement à votre propre centre de données ou à votre cloud privé, vous avez un contrôle total sur l'infrastructure matérielle et logicielle. Avec le cloud public, les services que vous avez proposés sont limités et cela peut entraîner des frais supplémentaires si vous souhaitez différents services qui vous fourniraient des métriques et des journaux. La sécurité est également une préoccupation en ce qui concerne vos données confidentielles qui sont collectées.
La surveillance des performances permet de déterminer l'efficacité et la rapidité d'exécution de vos bases de données dans le cloud, sur site ou dans un cloud privé ou public. En pratique, un ensemble de processus et d'outils testés et basés sur les résultats qui vous fourniront des métriques en temps réel ou périodiques.
Dans un cloud hybride, tous les outils de surveillance logicielle ne sont pas conçus pour gérer les métriques clés qui doivent être observées et surveillées. Vous devez avoir l'idée et les connaissances nécessaires pour déterminer les mesures et les exigences requises que l'outil peut fournir. Avec un cloud hybride, on s'attend à ce que la nature du fonctionnement d'un cloud hybride puisse être complexe. Les services sont fortement distribués et mélangés à d'autres services qui ne sont pas liés à un seul fournisseur.
À cet égard, votre logiciel de surveillance possède ces spécialités et a-t-il également la capacité d'identifier et de découpler de quel cloud il appartient. Un logiciel ou des outils de surveillance doivent avoir la capacité de résoudre les goulots d'étranglement, les problèmes de sécurité, les latences, de fournir une évolutivité, de notifier les problèmes en cours et de fournir des prédictions. La prédiction peut éviter d'autres conséquences qui peuvent conduire à une catastrophe ou affecter l'efficacité de vos bases de données MariaDB. Cela aide toute l'équipe, y compris les ingénieurs d'infrastructure, les ingénieurs de base de données, les administrateurs de serveur et les développeurs, à s'assurer que les serveurs de base de données sont sains et fonctionnent au niveau attendu.
Éléments à prendre en compte pour la surveillance de la base de données
Lors de la surveillance de votre cluster de base de données MariaDB (réplication ou Galera) ou nœud, il y a deux éléments principaux à prendre en compte :le système d'exploitation et la base de données elle-même. Vous devrez définir les métriques que vous allez surveiller des deux côtés et comment vous allez le faire. Vous devez toujours surveiller la métrique dans le contexte de votre système et vous devez rechercher les modifications du modèle de comportement.
Dans la plupart des cas, vous devrez utiliser plusieurs outils (car il est presque impossible d'en trouver un pour couvrir toutes les statistiques souhaitées.)
Gardez à l'esprit que lorsqu'une de vos statistiques est affectée, cela peut également en affecter d'autres, ce qui complique la résolution du problème. Avoir un bon système de surveillance et d'alerte est important pour rendre cette tâche aussi simple que possible.
Surveillez toujours l'activité de votre serveur (réseau, disque, charge, mémoire et CPU)
Surveiller l'activité de votre serveur peut également être une tâche complexe si vous disposez d'une pile très compliquée entrelacée dans l'architecture de votre base de données. Cependant, pour une base de données MariaDB, il est toujours préférable que vos nœuds soient toujours configurés en tant que serveur dédié pour obtenir une introspection complète par nœud. Bien que cela ne vous empêche pas d'utiliser toutes les ressources disponibles, vous trouverez ci-dessous les domaines clés communs que vous devez examiner.
Réseau
Sur une infrastructure de cloud hybride, c'est l'une des préoccupations les plus importantes à prendre en compte car vous devez prendre en compte le type de conception et la manière dont elle communique du cloud sur site ou privé au cloud public et vice versa. Dans les deux cas, l'un des clusters ou nœuds se spécialise dans son rôle soit en tant que principal pour la réception des écritures, soit en tant que reprise après sinistre. À cet égard, vous ne voulez pas que vos nœuds de récupération aient des latences, pire, cela entraîne des retards de réplication importants. Chaque fois qu'il y a des retards et que le cluster principal d'un cloud particulier (disons votre sur site) tombe en panne, votre cloud public doit prendre le relais mais doit être en mesure de fournir les données les plus à jour. Chaque fois que cela peut se produire, vous devrez peut-être ajouter un mécanisme de pré-basculement qui prendra en charge les sauvegardes incrémentielles ou PITR au cas où certaines transactions ou écritures n'auraient pas encore été appliquées dans votre cluster de récupération (ou dans ce cas, votre cluster de cloud public).
Si vous utilisez Galera, depuis que MariaDB a mis à jour son Galera vers la version 4, la réplication en continu est ajoutée comme l'une des principales fonctionnalités et modifications par rapport à la version précédente. Étant donné que la réplication en continu résout les inconvénients qu'elle avait dans les versions précédentes, mais lui permet de gérer plus de 2 Go d'ensembles d'écriture depuis Galera Cluster 4. Cela permet de fragmenter les grosses transactions et il est fortement recommandé de l'activer uniquement au niveau de la session. Cela signifie que la surveillance de votre activité réseau est très importante et cruciale pour l'activité normale de votre cluster MariaDB. Cela vous aidera à identifier quel nœud a eu le trafic réseau le plus ou le plus élevé en fonction de la période de temps.
Un bon exemple de rendu de la surveillance du réseau utilise ClusterControl. Il identifie chacun des nœuds et fournit une vue d'ensemble de son activité réseau par nœud, quel que soit le cloud sur lequel se trouve le nœud. Voir capture d'écran ci-dessous :
Activité du processeur, de la mémoire et du chargement
Permettez-moi de présenter brièvement ces trois domaines à prendre en compte lors de la surveillance. Dans cette section, il est toujours préférable d'avoir une meilleure observabilité des domaines suivants à la fois. Il est rapide et facile à comprendre et aide à exclure un goulot d'étranglement des performances ou à identifier les bogues qui provoquent le blocage de vos nœuds ou affectent les autres nœuds ou même la possibilité qu'un cluster tombe en panne.
Alors, comment l'activité du processeur, de la mémoire et de la charge lors de la surveillance aide-t-elle votre MariaDB ? Eh bien, comme je l'ai mentionné ci-dessus, ce sont l'une des rares choses qui constituent pourtant un facteur important pour les vérifications de routine quotidiennes. Maintenant, cela vous aide également à identifier s'il s'agit d'occurrences périodiques ou aléatoires. S'il est périodique, il peut être lié à des sauvegardes exécutées dans l'un de vos nœuds de base de données MariaDB, ou il s'agit d'une requête massive qui nécessite une optimisation. Par exemple, de mauvaises requêtes sans index appropriés ou une utilisation déséquilibrée de la récupération de données, comme une comparaison de chaînes pour une chaîne aussi grande. Cela peut être indéniablement inapplicable pour les bases de données de type OLTP, surtout si c'est vraiment la nature et les exigences de votre application. Mieux vaut utiliser d'autres outils analytiques tels que MariaDB Columnstore ou d'autres outils de traitement analytique tiers (Apache Spark, Kafka ou MongoDB, etc.) pour la récupération de données de chaînes volumineuses et/ou la correspondance de chaînes.
Donc, avec tous ces domaines clés surveillés, la question est de savoir comment cela doit être surveillé ? Il doit être surveillé au moins par minute. Avec une surveillance raffinée, c'est-à-dire par seconde de métriques collectives, cela peut être gourmand en ressources et très gourmand en termes de ressources. Bien qu'une demi-minute de collectivité soit acceptable, surtout si vos données et votre RPO (objectif de point de récupération) sont très faibles, vous avez donc besoin de métriques de données plus granulaires et en temps réel. Il est très important que vous puissiez superviser l'ensemble de votre cluster de bases de données. En dehors de cela, il est également préférable et important que, quelle que soit la métrique que vous surveillez, vous disposiez du bon outil pour attirer votre attention lorsque les choses sont en danger ou même simplement des avertissements. L'utilisation de l'outil approprié tel que ClusterControl vous aide à gérer ces domaines clés à surveiller. J'utilise une version gratuite ou une édition communautaire de ClusterControl qui m'aide à surveiller mes nœuds sans aucun problème, de l'installation à la surveillance des nœuds en quelques clics. Par exemple, voir les captures d'écran ci-dessous :
Il fournit également une base par nœud avec un aperçu graphique simple,
ou avec un modèle de données plus puissant et plus riche qui prend également en charge le langage de requête à l'aide de Prometheus, peut vous fournir une analyse des performances de votre base de données MariaDB basée sur des données historiques comparant ses performances en temps opportun. Par exemple,
Cela vous fournit simplement des métriques plus visibles. Vous voyez donc à quel point il est vraiment important d'avoir le bon outil lors de la surveillance de votre base de données MariaDB dans un cloud hybride.
Surveillance collective de vos variables statistiques MariaDB
De temps en temps, il ne peut pas être inévitable que les versions de la base de données MariaDB produisent de nouvelles statistiques pour surveiller ou améliorer la nature de la surveillance de la base de données en fournissant plus de variables d'état et en affinant les valeurs à examiner.
Octets envoyés/reçus
Les octets envoyés ou reçus sont en corrélation avec l'activité de mise en réseau et constituent l'un des principaux domaines à examiner côte à côte, en particulier dans une topologie de cloud hybride. Cela vous permet de déterminer quel nœud est le plus impacté ou attribué aux problèmes de performances qui souffrent au sein de votre base de données MariaDB. C'est très important car vous pouvez vérifier s'il peut y avoir une dégradation en termes de matériel tel que votre périphérique réseau ou le périphérique de stockage sous-jacent pour lequel la synchronisation des pages sales peut prendre trop de temps.
Voir l'exemple de capture d'écran,
Chargement du cluster
Il s'agit davantage de l'activité de la base de données que de la quantité de modifications ou de récupération de données qui ont été interrogées ou effectuées jusqu'à présent depuis la disponibilité du serveur. Il vous aide à exclure les types de requêtes qui affectent principalement les performances de votre cluster de base de données. Cela vous permet d'apporter une marge d'amélioration, notamment sur l'équilibrage de la charge de vos requêtes de base de données.
En tant que tel, il y a des tonnes de variables à examiner dans un serveur de base de données MariaDB. La chose la plus importante ici que vous devez prendre en compte est l'outil que vous utilisez pour surveiller votre cluster de bases de données. Avec ClusterControl (Community Edition), cela me donne plus de possibilités avec la flexibilité de regarder dans une base de données MariaDB. Voir l'exemple ci-dessous,
Ensuite, vous pouvez également sélectionner dans le menu déroulant les autres variables à examiner,
Ceci est très utile et vous aide à déterminer par exemple dans une topologie de réplication dans un cloud hybride. Vous pouvez obtenir un aperçu rapide de l'état et des performances liés au réseau, mais également avec d'autres pointeurs variables à considérer et vérifier quels sont les goulots d'étranglement qui affecteraient vos performances MariaDB dans une topologie de cloud hybride. Vous pouvez déterminer si votre application est gourmande en écriture, alors la réplication et le transfert réseau sont impactés, vous pouvez obtenir l'interactivité du cluster au sein de deux ou plusieurs infra cloud. Il est préférable de déterminer dans quelle mesure vos nœuds peuvent gérer le stress. Surtout pendant les tests de résistance avant de pousser des modifications spécifiques dans votre application, il est toujours préférable d'essayer de tester pour déterminer la gestion de la capacité de votre produit d'application et de déterminer si vos nœuds de base de données et votre conception actuels peuvent gérer la charge des exigences de votre application.
Pour des métriques de données plus granulaires et riches, vous pouvez obtenir plus de données à l'aide de la surveillance basée sur des agents. Voir ci-dessous,
C'est ainsi que vous aborderez le monitoring de votre cluster MariaDB. Une visualisation parfaite est toujours plus facile et plus rapide à gérer. Lorsque les choses tournent mal, vous ne pouvez pas vous permettre de perdre votre productivité et les temps d'arrêt peuvent également avoir un impact sur votre entreprise. Bien qu'avoir une version gratuite ne vous offre pas le luxe et le confort lors de la gestion de bases de données à fort trafic; avoir des alarmes, des notifications et la gestion de la base de données dans une zone est un module complémentaire unique que ClusterControl peut faire.
Conclusion
Surveiller vos serveurs de base de données MariaDB dans un environnement de cloud hybride n'est pas facile et c'est aussi compliqué, surtout lorsqu'il existe un nombre de services et de relations complexes qui formulent l'ensemble de votre technologie. L'utilisation des bons outils de surveillance vous aide à gérer efficacement votre application et à améliorer la productivité en même temps. De plus, avec les bons outils de surveillance en main, vous aurez plus de temps pour vous concentrer sur l'amélioration de vos applications ainsi que sur d'autres processus métier.