MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Surveillance du serveur Percona pour MongoDB - Indicateurs clés

Lors de l'exécution de services de base de données critiques en production, nous devons connaître et surveiller la base de données. Vous devez comprendre les métriques clés de la base de données que vous utilisez. Par exemple, lorsque vous exécutez MongoDB avec un moteur de stockage WiredTiger, vous devez connaître les connexions, l'authentification, les opérations, le délai de réplication, les défauts de page, le verrouillage, etc.

Dans ce blog, nous expliquerons certaines métriques clés utilisées pour surveiller Percona Server pour MongoDB.

Connexions à la base de données

Les connexions à la base de données sont l'une des mesures clés importantes de toute base de données. Il surveille vos connexions/threads actuels entre les applications et la base de données. Vous pouvez vérifier les connexions actuelles via la commande ci-dessous :

> db.serverStatus().connections

Il donne une idée du nombre d'accès de vos applications à la base de données. Un pic soudain du nombre de connexions peut causer des problèmes à votre problème de serveurs de base de données. Est-ce prévu ou non ?.

ClusterControl fournit des informations relatives aux connexions comme indiqué ci-dessous :

Opérations de commande

Les métriques des opérations de commande surveillent vos opérations en cours, soit insérer, mettre à jour, supprimer ou sélectionner. Vous pouvez surveiller les opérations de commande en cours en exécutant la commande ci-dessous :

>db.serverStatus().opcounters

À partir des opérations de commande, vous pouvez vraiment voir la charge de travail de votre application, qu'elle soit lourde en écriture ou en lecture. De ce point de vue, vous pouvez prendre certaines décisions, par exemple, si vous avez un trafic de lecture important, vous souhaiterez peut-être mettre à l'échelle les nœuds secondaires pour distribuer les requêtes de lecture.

La surveillance des opérations de commande dans ClusterControl est simple, il vous suffit d'activer la surveillance basée sur l'agent pour voir les métriques OpsCounter dans le tableau de bord du serveur MongoDB, comme indiqué ci-dessous :

Retards de l'ensemble de réplicas

Lorsque vous exécutez l'architecture ReplicaSet ou ShardCluster, une métrique clé importante est le délai de réplication. Un décalage de réplication se produit lorsque les nœuds secondaires ne peuvent pas rattraper les données en cours d'écriture sur le nœud principal. Les raisons peuvent varier en fonction de la latence du réseau, du débit du disque, des requêtes lentes, etc.

Vous pouvez vérifier les informations sur le décalage de réplication actuel en exécutant la commande ci-dessous sur le nœud principal :

> rs.printSlaveReplicationInfo() 

Les métriques d'informations de décalage sont en secondes, donc sur les connexions simultanées lourdes, elles peuvent être décalées de quelques secondes sur les nœuds secondaires puisque la réplication dans mongodb est asynchrone.

Dans ClusterControl, les métriques Max Replication Lag se trouvent dans MongoDB Replicaset tableau de bord de surveillance.

Défauts de page

Les défauts de page se produisent principalement dans les applications à forte simultanéité et à forte charge. Les défauts de page se produisent lorsque le processus mongodb veut obtenir les données mais qu'elles ne sont pas disponibles dans la mémoire, puis le serveur mongodb lit les données à partir du disque.

Pour surveiller l'état actuel des défauts de page, vous pouvez utiliser la commande ci-dessous :

>db.serverStatus().extra_info.page_faults

Il vous donne le nombre de défauts de page. La valeur peut augmenter lors d'une charge importante et le serveur peut rencontrer des performances médiocres. Vous voudrez peut-être également vérifier le journal des requêtes lentes.

Verrouillage

Le verrouillage est également une métrique importante dans MongoDB, il se produit généralement dans les applications à forte charge avec plusieurs transactions sur le même jeu de données. Le verrouillage peut entraîner de graves problèmes de performances.

Vous pouvez vérifier les opérations de verrouillage en cours dans la base de données à l'aide de la commande ci-dessous :

>db.currentOp()

Lorsque nous exécutons la commande db.currentOp(), il existe des informations relatives au verrouillage. ClusterControl surveille Global Lock dans son tableau de bord MongoDB, comme indiqué ci-dessous :

Conclusion

Voici quelques-unes des métriques clés importantes à surveiller dans Percona Server pour MongoDB. Ils fournissent une vue en temps réel de ce qui se passe sur le serveur et peuvent découvrir toute anomalie sur laquelle vous pouvez agir. ClusterControl fournit des tableaux de bord qui vous donnent une visibilité sur vos bases de données MongoDB.