Ajout section Mémoire
This commit is contained in:
parent
d344333b38
commit
a017432b4c
|
@ -199,6 +199,26 @@ $ mongosh admin -u mongoAdmin -p PASSWORD
|
|||
Pour les accès aux bases, les utilisateurs sont stockés dans la collection _system.users_ propre à chaque base.
|
||||
|
||||
|
||||
### Mémoire
|
||||
|
||||
La mémoire utilisée par Mongo se répartit en deux types :
|
||||
|
||||
* La mémoire résidente : celle nécessaire au stockage des bases de données, requêtes, indexes.
|
||||
* La mémoire cache.
|
||||
|
||||
MongoDB n'a pas de plafonnement de la mémoire totale utilisée. Il considère qu'il est le seul service sur le serveurs (!).
|
||||
|
||||
Par défaut, il limite la taille de son cache à la moitié de la (RAM - 1G), avec un minimum de 256M. Par exemple, sur un serveur avec 6G, il limitera son cache à `(6-1)/2 = 2.5G`.
|
||||
|
||||
Le problème, c'est que si la mémoire résidente consomme la moitié de la RAM (ou plus), même poncuellement, on se retrouve avec des erreurs `tcmalloc: allocation failed` dans `/var/log/syslog` et d'autres service qui se font OOM kill.
|
||||
|
||||
Work in progress :
|
||||
|
||||
Solutions :
|
||||
|
||||
* Mauvaise ? Changer `storage.wiredTiger.engineConfig.cacheSizeGB`, car on ne sait pas jusqu'à combien la mémoire résidente peu aller (et du coup combien on peut laisser au cache).
|
||||
* Bonne ? Définir les options systemd `MemoryHigh` (75% RAM) et `MemoryMax` (85% RAM) + `Restart=on-failure` en cas de OOM.
|
||||
|
||||
## Accès en CLI
|
||||
|
||||
Comme pour MySQL, on peut manipuler MongoDB en CLI en mode interactif avec la commande `mongosh`.
|
||||
|
|
Loading…
Reference in a new issue