Performances
Les déploiements IBM Cloud® Databases for MongoDB peuvent être manuellement mis à l'échelle en fonction de votre utilisation ou configurés pour une mise à l'échelle automatique sous certaines conditions de ressource. Si vous souhaitez améliorer les performances de votre déploiement, prenez d'abord en compte quelques facteurs.
Surveillance de votre déploiement
Les déploiements Databases for MongoDB offrent une intégration au serviceIBM Cloud® Monitoring pour la surveillance de base de l'utilisation des ressources sur votre déploiement. De nombreuses métriques disponibles, comme l'utilisation du disque et les IOPS, sont présentées pour vous aider à configurer la mise à l'échelle automatique sur votre déploiement. L'observation des tendances liées à votre utilisation et la configuration de la mise à l'échelle automatique pour y répondre peuvent vous aider à atténuer les problèmes de performance avant que vos bases de données ne deviennent instables en raison de l'épuisement des ressources.
Utilisation du disque
Si vous êtes préoccupé par la quantité d'espace que MongoDB utilise pour stocker vos données, vous pouvez exécuter des diagnostics de stockage de données natifs de MongoDB pour connaître la taille d'éléments tels que les bases de données, les collections et les index. Si la taille approximative de votre ensemble de données est connue et fixe, vous pouvez mettre à l'échelle manuellement votre disque de manière à prendre en compte vos données. Si votre ensemble de données croît à un rythme prévisible au fil du temps, vous pouvez configurer la mise à l'échelle automatique pour augmenter la taille du disque lorsque votre utilisation d'espace disque atteint un certain seuil.
E-S de disque
Le nombre d'IOPS sur les déploiements Databases for MongoDB est limité par le type de volume de stockage. Les volumes de stockage pour les déploiements de Databases for MongoDB sont des volumes d'endurance de Block Storage dans le niveau 10 IOPS par Go. Lorsque les limites d'utilisation des E-S sont atteintes, un ralentissement des temps de réponse de vos bases de données peut se produire ou celles-ci peuvent sembler peu réceptives. Des éléments tels que des requêtes non optimisées, la construction d'index et la création de nouveaux index peuvent provoquer des pics d'IOPS, mais il est également possible que les charges de travail normales de vos applications dépassent les IOPS disponibles pour votre déploiement.
Vous pouvez accroître le nombre d'IOPS disponibles pour votre déploiement en augmentant l'espace disque. Vous pouvez également configurer la mise à l'échelle automatique pour augmenter la taille de disque automatiquement si l'utilisation des E-S de votre déploiement atteint un certain seuil de saturation pendant une période prolongée.
Pour plus d'informations, voir la documentationMongoDB.
Cache et mémoire WiredTiger
Databases for MongoDB utilise le moteur de stockage WiredTiger, qui utilise à la fois le cache mémoire du système de fichiers et un cache mémoire interne. MongoDB est le plus performant lorsqu'il traite vos données à partir de son cache interne, un peu moins performant lorsque les données se trouvent dans le cache du système de fichiers et le moins performant lorsqu'il doit récupérer vos données sur le disque.
La taille par défaut du cache interne est 50% of (total RAM per member - 1 GB)
ou 256 MB
, la plus grande étant retenue. Par exemple, la taille minimale de la mémoire d'un déploiement Databases for MongoDB est de 4096
Mo par membre de données, de sorte que le cache interne est de 1536 Mo (parce que 0.5 * (4096 MB - 1024 MB) = 1536 MB
.
Le rapport cache interne/cache du système de fichiers n'est pas configurable par l'utilisateur sur votre déploiement, mais vous pouvez mettre à l'échelle la quantité totale de mémoire pour ajuster le cache interne et rendre votre base de données
plus performante. Par exemple, si vous augmentez la mémoire à 5120 Mo par membre, la taille du cache interne devient 2048 Mo. 0.5 * (5120 MB - 1024 MB) = 2048 MB.
Une autre façon d'utiliser la mise à l'échelle automatique consiste à définir la mémoire pour qu'elle soit mise à l'échelle lorsque l'utilisation des E-S de disque atteint un certain seuil. Augmenter la mémoire réduit le nombre d'opérations de lecture ou d'écriture sur disque effectuées par MongoDB, par conséquent, la mémoire supplémentaire peut atténuer la pression sur les E-S de disque en prenant en charge davantage de mise en cache.
Vous trouverez plus d'informations sur le cache WiredTiger dans la documentation MongoDB.
Performances des requêtes
La documentation de MongoDB contient de nombreuses ressources sur les performances des requêtes, y compris un guide pratique sur l'analyse des performances des requêtes. Une fois que vous avez une idée générale des performances de vos requêtes, vous trouverez également des conseils pour optimiser vos requêtes.
En tant que sujet plus avancé, vous pouvez apprendre comment MongoDB gère les plans de requête.
Autres outils de surveillance MongoDB
Vous pouvez également tirer parti de certaines fonctions de surveillance MongoDB natives. Par exemple, vous pouvez utiliser à la fois mongotop
et mongostat
.
mongotop 30 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712, host2.databases.appdomain.cloud:31712
mongostat -n 20 1 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712,host2.databases.appdomain.cloud:31712 --json
Exécutez l'une des commandes documentées qui indiquent le statut de votre base de données MongoDB.
De nombreux utilitaires et commandes MongoDB ont besoin du rôle Cluster Monitor pour s'exécuter. Il ne fait pas partie
du rôle par défaut admin
. Accordez le rôle Cluster Monitor à l'utilisateur admin
sur votre déploiement.
Pour plus d'informations, voir l'article de blogue sur les meilleures pratiques.