У мене є близько 200 ГБ даних, що зберігаються в кластері Монго. Фізична пам'ять одного з екземплярів, на якому працює монго, становить 8 Гб. Ніщо інше з жодних наслідків не працює в цьому випадку. Наскільки я можу зрозуміти, ґрунтуючись на документах Монго (на кшталт цього: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ), це означає, що процес монгоду повинен використовувати близько 100% наявна фізична пам'ять. Але якщо ви подивитесь на наступний вихід з top
команди, ви побачите, що монгод-екземпляр використовує лише 2 ГБ пам'яті резидента і має повний 2 ГБ вільної фізичної пам'яті, який взагалі не використовується.
Чи може хтось пояснити мені таку поведінку? Чому є 2 Гб вільної пам'яті?
top
вихід:
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
...
Інформація про систему:
$ uname -a
Linux aluminum 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU/Linux
Примітки:
- У цьому кластері є ще один приклад, коли mongod поводиться так, як я очікував, і використовує всю наявну пам'ять.
- Дивлячись на монгостат, схоже, постійно виникають певні помилки на сторінці, тому об'єм використовуваної пам'яті повинен зростати:
- (Я задав це те саме питання в групі google mongodb-користувача, але не отримав відповіді.)
uname
але я не lsb-release
встановив.
lsb-release -a
таuname -a
будь ласка)