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

Analyser les requêtes lentes dans MongoDB

Nous sommes heureux d'annoncer au public la disponibilité de notre analyseur de requêtes lentes pour MongoDB ! L'analyseur de requêtes lentes vous permet d'identifier rapidement les requêtes lentes sur n'importe lequel de vos serveurs sur une période donnée. Par défaut, les "requêtes lentes" sont définies comme des requêtes qui durent plus de 100 ms.

Carte thermique des requêtes lentes

La carte thermique vous donne un aperçu visuel rapide des requêtes lentes de votre système. L'axe vertical du graphique est le temps exponentiel. Cela signifie que plus la bulle est haute dans le graphique, plus la requête est lente (par ordre de grandeur) - gardez donc un œil sur les bulles qui sont constamment en haut de votre graphique. Vous pouvez également cliquer sur une bulle pour voir les détails de la requête sous-jacente.

Les requêtes de même type ont la même couleur. Cela vous permet d'identifier facilement des modèles dans vos requêtes lentes. Vous pouvez également sélectionner des parties du graphique pour zoomer sur une plage de temps particulière.

Par exemple. Dans l'exemple ci-dessus, vous pouvez voir un groupe de points rouges qui prennent plus de 10 secondes. Vous pouvez également voir qu'une tâche en arrière-plan qui s'exécute une fois par heure prend 28 secondes pour s'exécuter. Vous pouvez cliquer sur le point de données pour obtenir la requête réelle.

Tableau de données de requête lente

La table de données des requêtes lentes vous donne une vue tabulaire de toutes les données des requêtes lentes. Les tableaux de données affichent plusieurs mesures importantes concernant vos requêtes lentes :

  • Tapez - Type de requête :requête, insertion, mise à jour, suppression, etc.
  • Base de données et collecte – La Db et la collection de la requête
  • Requête – La requête réelle avec les paramètres de requête supprimés
  • Compter – Le nombre de fois où la requête a été exécutée dans la période sélectionnée
  • nScanné – Le nombre d'entrées scannées dans l'index + le nombre d'objets scannés de la collection
  • Durée (ms) – Le temps d'exécution moyen de la requête en ms
  • Longueur de la réponse (octets) – La longueur moyenne de réponse du résultat de la requête en octets
  • nRetourné - Le nombre moyen de documents renvoyés par exécution de la requête
  • Verrouillage de lecture (micro secondes) – Le temps de verrouillage moyen en lecture en microsecondes
  • Verrouillage en écriture (micro secondes) – Le temps moyen de verrouillage en écriture en microsecondes

Vous pouvez trier le tableau des requêtes lentes selon l'une des colonnes ci-dessus pour créer la vue dont vous avez besoin. Les données de la requête peuvent également être téléchargées dans Excel pour analyse. Cliquez sur le lien "Télécharger les données au format csv" pour télécharger les données de requête lente et effectuer votre analyse personnalisée dans Excel.

Afin d'identifier facilement les requêtes problématiques, nous fournissons un certain nombre de vues intégrées.

Requêtes lentes triées par "les plus fréquentes"

Cette vue présente (par ordre décroissant) les requêtes les plus fréquemment exécutées dans le système. Vous souhaitez accorder une attention particulière aux principales requêtes de la liste. Si leur valeur nScanned est élevée ou si la durée est élevée, vous devez ajouter l'index approprié pour cette requête. Cela réduit le nombre de documents numérisés à partir du disque.

Requêtes lentes triées par "Max Docs/Index Scanned"

Cette vue présente (par ordre décroissant) les requêtes qui analysent le plus d'entrées d'index ou le plus de documents dans une collection. Une valeur "nScanned" élevée implique que vous n'avez pas d'index ou que vous n'avez pas le bon index. Il n'est peut-être pas possible d'ajouter un index pour chaque requête dans le système, mais vous devez vous assurer qu'au moins vos requêtes à fréquence élevée sont toutes bien indexées.

Requêtes lentes triées par "requête la plus lente"

Cette vue présente (par ordre décroissant) les requêtes dont l'exécution prend le plus de temps. Si la requête s'exécute très rarement, vous pouvez décider si vous souhaitez l'optimiser.

Requêtes lentes triées par "Max Docs Returned"

Cette vue présente (par ordre décroissant) les requêtes qui renvoient le plus de résultats. Le renvoi d'un grand nombre de résultats entraîne souvent une charge réseau sur le système. Vous devez également vous assurer que vous ne renvoyez que les champs dont vous avez besoin dans le document et non tous les champs.

Requêtes lentes triées par "Verrouillage en lecture"

Cette vue présente (par ordre décroissant) les requêtes qui consomment le temps de verrouillage de lecture maximum en micro-secondes. Si vous utilisez le moteur de stockage WiredTiger, ce n'est généralement pas un problème puisque WiredTiger utilise le verrouillage au niveau du document.

Requêtes lentes triées par « Verrouillage en écriture »

Cette vue présente (par ordre décroissant) les requêtes qui consomment le temps de verrouillage en écriture maximum en micro-secondes. Si vous utilisez le moteur de stockage WiredTiger, ce n'est généralement pas un problème puisque WiredTiger utilise le verrouillage au niveau du document.