Je me souviens qu'une personne nommée Tang Jianfa a dit : MongoDB ne mange pas de mémoire, mais son intention initiale est d'occuper délibérément la mémoire.
Mongodb lui-même ne gère pas la mémoire, et sa gestion de la mémoire dépend entièrement du système. Vous pouvez utiliser System Performance Monitor pour vérifier la mémoire et la mémoire virtuelle. Pour faire simple, mongdb consommera autant de mémoire que vous en avez. Il est tellement gourmand qu'il mettra la plupart des données chaudes en mémoire pour améliorer les performances. Après tout, c'est aussi son avantage.
Notre serveur est Windows Server 2008, avec 32 Go de mémoire. Après avoir fonctionné pendant un certain temps, tout était épuisé, mais les performances étaient surprenantes. Cependant, il n'y avait pas que mongodb sur ce serveur, donc cela affectait souvent d'autres programmes. Plus tard, nous avons essayé d'utiliser le gestionnaire de ressources système Windows WSRM pour limiter la mémoire du processus mongodb. Vous pouvez l'essayer.
Mais j'ai commencé à utiliser mongodb il y a un an. La version à cette époque était relativement ancienne. Après avoir limité la mémoire, mongodb était très instable et raccrochait parfois. En regardant les journaux, cela signifiait généralement que la mémoire mappée était introuvable. Plus tard, nous avons renoncé à limiter la mémoire et sommes passés à l'utilisation des commandes mongodb pour libérer de la mémoire à des points fixes chaque jour {closeAllDatabases:1}
Cette commande a également un coût, elle sera bloquée jusqu'à ce que la commande soit terminée, et l'efficacité sera réduite immédiatement après son lancement, et il faudra une période de « préchauffage » pour récupérer lentement.
Je pense que cette dernière méthode est bonne, et grâce aux observations des deux dernières années, tout est relativement stable. Bien sûr, ce serait formidable si vous pouviez donner à mongodb un serveur séparé.
Le nouveau moteur MongoDB se considérera comme le seul service important du système, il essaiera donc d'occuper autant de mémoire que son propre cache (pas celui du système d'exploitation). Si vous devez réserver de la mémoire pour d'autres processus ou disposer de plusieurs instances MongoDB, vous pouvez utiliser le paramètre --cacheSizeGB pour limiter la taille du cache MongoDB.
Je me souviens qu'une personne nommée Tang Jianfa a dit : MongoDB ne mange pas de mémoire, mais son intention initiale est d'occuper délibérément la mémoire.
Mongodb lui-même ne gère pas la mémoire, et sa gestion de la mémoire dépend entièrement du système. Vous pouvez utiliser System Performance Monitor pour vérifier la mémoire et la mémoire virtuelle. Pour faire simple, mongdb consommera autant de mémoire que vous en avez. Il est tellement gourmand qu'il mettra la plupart des données chaudes en mémoire pour améliorer les performances. Après tout, c'est aussi son avantage.
Notre serveur est Windows Server 2008, avec 32 Go de mémoire. Après avoir fonctionné pendant un certain temps, tout était épuisé, mais les performances étaient surprenantes. Cependant, il n'y avait pas que mongodb sur ce serveur, donc cela affectait souvent d'autres programmes. Plus tard, nous avons essayé d'utiliser le gestionnaire de ressources système Windows WSRM pour limiter la mémoire du processus mongodb. Vous pouvez l'essayer.
Mais j'ai commencé à utiliser mongodb il y a un an. La version à cette époque était relativement ancienne. Après avoir limité la mémoire, mongodb était très instable et raccrochait parfois. En regardant les journaux, cela signifiait généralement que la mémoire mappée était introuvable. Plus tard, nous avons renoncé à limiter la mémoire et sommes passés à l'utilisation des commandes mongodb pour libérer de la mémoire à des points fixes chaque jour
{closeAllDatabases:1}
Cette commande a également un coût, elle sera bloquée jusqu'à ce que la commande soit terminée, et l'efficacité sera réduite immédiatement après son lancement, et il faudra une période de « préchauffage » pour récupérer lentement.
Je pense que cette dernière méthode est bonne, et grâce aux observations des deux dernières années, tout est relativement stable. Bien sûr, ce serait formidable si vous pouviez donner à mongodb un serveur séparé.
Le nouveau moteur MongoDB se considérera comme le seul service important du système, il essaiera donc d'occuper autant de mémoire que son propre cache (pas celui du système d'exploitation). Si vous devez réserver de la mémoire pour d'autres processus ou disposer de plusieurs instances MongoDB, vous pouvez utiliser le paramètre
--cacheSizeGB
pour limiter la taille du cache MongoDB.J'ai écrit un script pour vider le cache chaque petit matin. . .
http://onwise.xyz/2017/02/23/...