MongoDB wird (zumindest scheinbar) viel verfügbaren Speicher verbrauchen, aber es überlässt es tatsächlich dem VMM des Betriebssystems, ihm mitzuteilen, dass es den Speicher freigeben soll (siehe Caching in der MongoDB-Dokumentation.)
Sie sollten in der Lage sein, den gesamten Speicher freizugeben, indem Sie MongoDB neu starten.
Bis zu einem gewissen Grad „nutzt“ MongoDB den Speicher jedoch nicht wirklich.
Zum Beispiel aus der MongoDB-Dokumentation Checking Server Memory Usage ...
Je nach Plattform sehen Sie die gemappten Dateien möglicherweise als Speicher im Prozess, aber das ist nicht ganz korrekt. Unix Top kann für Mongod viel mehr Speicher anzeigen, als wirklich angemessen ist. Das Betriebssystem (speziell der virtuelle Speichermanager, abhängig vom Betriebssystem) verwaltet den Speicher, in dem sich die „Memory Mapped Files“ befinden. Diese Nummer wird normalerweise in einem Programm wie "free -lmt" angezeigt.
Es wird als "gecachter" Speicher bezeichnet.
MongoDB verwendet den LRU-Cache-Algorithmus (Least Latest Used), um zu bestimmen, welche "Seiten" freigegeben werden sollen. Weitere Informationen finden Sie in diesen beiden Fragen ...
- MongoDB-Grenzspeicher
- MongoDB-Index/RAM-Beziehung
- Mongod beginnt mit Speicherlimit (Sie können nicht .)