Ho circa 200 GB di dati memorizzati in un cluster mongo. La memoria fisica su una delle istanze che esegue mongo è di 8 GB. Nient'altro che abbia conseguenze su questa istanza. Per quanto posso capire sulla base dei documenti di Mongo (come questo: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ) ciò significa che il processo mongod dovrebbe utilizzare circa il 100% di la memoria fisica disponibile. Ma se guardi il seguente output dal top
comando vedrai che l'istanza mongod sta usando solo 2 GB di memoria residente e ci sono 2 GB di memoria fisica libera disponibile che non viene affatto utilizzata.
Qualcuno può spiegarmi questo comportamento? Perché ci sono 2 GB di memoria libera?
top
produzione:
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
...
Informazioni di sistema:
$ uname -a
Linux aluminum 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU/Linux
Appunti:
- C'è un'altra istanza in questo cluster in cui mongod si sta comportando come mi aspetterei e utilizzando tutta la memoria disponibile.
- Guardando mongostat sembra che avessero costantemente qualche errore di pagina, quindi la quantità di memoria utilizzata dovrebbe aumentare:
- (Ho fatto la stessa domanda sul gruppo google utente mongodb ma non ho ricevuto risposta.)
uname
ma non ho lsb-release
installato.
lsb-release -a
e peruname -a
favore)