J'ai quelque chose d'environ 200 Go de données stockées dans un cluster mongo. La mémoire physique sur l'une des instances exécutant mongo est de 8 Go. Rien d'autre de n'importe quelle conséquence ne s'exécute sur cette instance. D'après ce que je peux comprendre d'après les documents de Mongo (comme celui-ci: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ), cela signifie que le processus mongod devrait utiliser environ 100% de la mémoire physique disponible. Mais si vous regardez la sortie suivante de la top
commande, vous verrez que l'instance mongod n'utilise que 2 Go de mémoire résidente et qu'il y a 2 Go de mémoire physique libre disponible qui n'est pas du tout utilisée.
Quelqu'un peut-il m'expliquer ce comportement? Pourquoi y a-t-il 2 Go de mémoire libre?
top
production:
top - 23:19:43 up 89 days, 20:05, 2 users, load average: 0.41, 0.55, 0.59
Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.0%us, 1.3%sy, 0.0%ni, 93.9%id, 2.6%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 8163664k total, 6131764k used, 2031900k free, 54976k buffers
Swap: 16771848k total, 10604k used, 16761244k free, 5367700k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1401 mongodb 20 0 174g 2.0g 1.9g S 23 26.2 18070:55 mongod
...
Information système:
$ uname -a
Linux aluminum 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU/Linux
Remarques:
- Il y a une autre instance dans ce cluster où mongod se comporte comme je m'y attendais et utilise toute la mémoire disponible.
- En regardant Mongostat, il semble qu'il y ait toujours des défauts de page, donc la quantité de mémoire utilisée devrait augmenter:
- (J'ai posé cette même question sur le groupe google mongodb-user mais je n'ai reçu aucune réponse.)
uname
mais je ne l'ai pas lsb-release
installé.
lsb-release -a
etuname -a
s'il vous plaît)