O MongoDB vai (pelo menos parecer) usar muita memória disponível, mas na verdade deixa para o VMM do sistema operacional dizer a ele para liberar a memória (consulte Cache nos documentos do MongoDB.)
Você deve ser capaz de liberar toda e qualquer memória reiniciando o MongoDB.
No entanto, até certo ponto o MongoDB não está realmente "usando" a memória.
Por exemplo, dos documentos do MongoDB Verificando o uso da memória do servidor ...
Dependendo da plataforma você pode ver os arquivos mapeados como memória no processo, mas isso não é estritamente correto. O Unix top pode mostrar muito mais memória para o mongod do que é realmente apropriado. O sistema operacional (o gerenciador de memória virtual especificamente, dependendo do sistema operacional) gerencia a memória onde residem os "Arquivos de Memória Mapeada". Este número geralmente é mostrado em um programa como "free -lmt".
É chamada de memória "em cache".
O MongoDB usa o algoritmo de cache LRU (Least Recentemente Used) para determinar quais "páginas" liberar, você encontrará mais algumas informações nessas duas perguntas ...
- Limite de memória do MongoDB
- Relação de índice/RAM do MongoDB
- Mongod começa com limite de memória (você não pode .)