Finalisation doc mémoire
This commit is contained in:
parent
50cea27c83
commit
4373aa9e41
|
@ -210,14 +210,26 @@ MongoDB n'a pas de plafonnement de la mémoire totale utilisée. Il considère q
|
|||
|
||||
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.
|
||||
Le problème, c'est que si la mémoire résidente consomme la moitié de la RAM (ou plus), même ponctuellement, 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 :
|
||||
Dans ce cas, on peut limiter le processus avec les cgroups dans Systemd :
|
||||
|
||||
Solutions :
|
||||
~~~
|
||||
# systemctl edit mongod.service
|
||||
[Service]
|
||||
Restart=always
|
||||
MemoryHigh=xG # RAM * 0.7
|
||||
MemoryMax=xG # RAM * 0.8
|
||||
~~~
|
||||
|
||||
~~~
|
||||
# systemctl restart mongod.service
|
||||
# systemctl status mongod.service
|
||||
● mongod.service - MongoDB Database Server
|
||||
(…)
|
||||
Memory: 1G (high: 4.4G max: 5G)
|
||||
~~~
|
||||
|
||||
* 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
|
||||
|
||||
|
|
Loading…
Reference in a new issue