Mam około 200 GB wartości danych przechowywanych w klastrze mongo. Pamięć fizyczna w jednym z instancji, w których działa mongo, wynosi 8 GB. W tym przypadku nie działa nic innego. Tak blisko, jak mogę zrozumieć na podstawie dokumentów Mongo (takich jak ten: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ), oznacza to, że proces mongod powinien wykorzystywać około 100% dostępna pamięć fizyczna. Ale jeśli spojrzysz na następujące dane wyjściowe top
polecenia, zobaczysz, że instancja mongod używa tylko 2 GB pamięci rezydentnej i jest dostępna pełna 2 GB wolnej pamięci fizycznej, która w ogóle nie jest używana.
Czy ktoś może mi wyjaśnić to zachowanie? Dlaczego jest 2 GB wolnej pamięci?
top
wynik:
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
...
Informacja o systemie:
$ uname -a
Linux aluminum 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU/Linux
Uwagi:
- Istnieje inny przykład w tym klastrze, w którym mongod zachowuje się tak, jakbym się spodziewał i wykorzystuje całą dostępną pamięć.
- Patrząc na mongostat, wygląda na to, że ciągle ma błędy stronicowania, więc ilość używanej pamięci powinna rosnąć:
- ( Zadałem to samo pytanie grupie google mongodb-user, ale nie otrzymałem odpowiedzi).
uname
ale nie lsb-release
zainstalowałem.
lsb-release -a
iuname -a
proszę)