Bonjour ici. Je travaille sur un projet MongoDB depuis un moment maintenant et j’ai fait face à plusieurs types de problèmes que j’ai réussi à résoudre. Le premier était la configuration du cluster (en utilisant un arbitre dans un « replica set »), j’ai déjà partagé le « comment » ici. Le cluster traite un grand nombre de données (120 Go par jour) et gère également beaucoup de requêtes via une API ou directement sur les routeurs. Après une semaine, nous avons commencé à avoir des problèmes de performance. Après quelques recherches, j’ai trouvé quelques paramètres qui peuvent être modifiés pour augmenter les performances et je suis sur le point de les partager dans cet article.
Nombre de fichiers ouverts sur le système de fichiers
MongoDB doit ouvrir beaucoup de fichiers sur le système de fichiers. C’est pourquoi vous devez surveiller ce paramètre pour vérifier s’il est correctement défini. En fonction de vos besoins, en augmentant ce paramètre sur chaque nœud du cluster, vous pouvez améliorer ses performances. Ce paramètre est défini au niveau du système de fichiers et non sur MongoDB.
wiredTigerCacheSizeGB
Ce paramètre est défini pour définir la taille maximale du cache interne que WiredTiger utilisera pour toutes les données. La valeur par défaut est 50% de (RAM - 1 Go) ou 256 Mo. Donc, si vous pouvez utiliser plus de 50% de votre RAM, en augmentant ce paramètre, vous pouvez augmenter considérablement les performances de votre cluster. Vous passez la valeur quand vous lancez le mongod en ajoutant ceci:
maxConns
Ce paramètre limite le nombre de connexions simultanées que peut accepter mongod. Donc, si votre cluster traite beaucoup de requêtes simultanément, en augmentant ce paramètre, vous pouvez augmenter considérablement les performances de votre cluster (en réduisant le nombre de requêtes en attente). Vous pouvez définir ce paramètre sur chaque nœud de votre cluster. Comme le paramètre précédent, vous passez également ce paramètre lorsque vous lancez le mongod en ajoutant par exemple
Pour l'instant, ce sont les paramètres que j'ai peaufinés sur mon cluster pour améliorer les performances. Vous pouvez consulter la documentation officielle de MongoDB pour plus d'informations et vous pouvez également laisser un commentaire si vous connaissez d'autres paramètres qui peuvent m'aider. Merci.