MongoDB sembrerà (almeno) consumare molta memoria disponibile, ma in realtà lascia al VMM del sistema operativo il compito di dirgli di rilasciare la memoria (vedi Caching nei documenti MongoDB.)
Dovresti essere in grado di rilasciare tutta la memoria riavviando MongoDB.
Tuttavia, in una certa misura MongoDB non sta realmente "usando" la memoria.
Ad esempio dai documenti MongoDB Controllo dell'utilizzo della memoria del server ...
A seconda della piattaforma, potresti vedere i file mappati come memoria nel processo, ma questo non è strettamente corretto. Unix top può mostrare molta più memoria per mongod di quanto sia realmente appropriato. Il Sistema Operativo (nello specifico il gestore della memoria virtuale, a seconda del sistema operativo) gestisce la memoria in cui risiedono i "File mappati in memoria". Questo numero viene solitamente mostrato in un programma come "free -lmt".
Si chiama memoria "cache".
MongoDB usa l'algoritmo della cache LRU (Least Recentemente Used) per determinare quali "pagine" rilasciare, troverai qualche informazione in più in queste due domande...
- Memoria limite MongoDB
- Rapporto indice MongoDB/RAM
- Mongod inizia con il limite di memoria (tu non puoi). .)