Bir mongo kümesinde depolanmış yaklaşık 200 GB'lik bir veri var. Mongo çalıştıran örneklerden birinin üzerindeki fiziksel bellek 8 GB'dir. Sonuçta başka hiçbir şey bu örnek üzerinde çalışmaz. Mongo'nun belgelerine dayanarak anlayabildiğim kadar yakın (bunun gibi: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ) bu, mongod sürecinin yaklaşık% 100'ünü kullanması gerektiği anlamına gelir. kullanılabilir fiziksel bellek. Ancak top
komuttan aşağıdaki çıktıya bakarsanız , mongod örneğinin yalnızca 2GB yerleşik bellek kullandığını ve hiç kullanılmayan tam 2GB boş fiziksel bellek olduğunu görürsünüz.
Birisi bana bu davranışı açıklayabilir mi? Neden 2GB boş hafıza var?
top
çıktı:
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
...
Sistem bilgisi:
$ uname -a
Linux aluminum 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU/Linux
Notlar:
- Bu kümede, mongodun beklediğim gibi davrandığı ve mevcut tüm belleği kullandığı başka bir örnek daha var.
- Sürekli kullanılan belleğin bazı sayfa-faylanma, böylece miktarını yapıyorduk benziyor mongostat baktığımızda olmalıdır büyüyen:
- ( Aynı soruyu mongodb kullanıcısı google grubunda sordum ama yanıt alamadım.)
uname
ama yüklemedim lsb-release
.
lsb-release -a
uname -a