ฉันมีข้อมูลประมาณ 200 GB ที่เก็บอยู่ในคลัสเตอร์ mongo หน่วยความจำกายภาพในหนึ่งในอินสแตนซ์ที่เรียกใช้ mongo คือ 8GB ไม่มีสิ่งอื่นใดที่จะตามมาในอินสแตนซ์นี้ ใกล้ที่สุดเท่าที่ฉันสามารถเข้าใจได้จากเอกสารของ Mongo (เช่นนี้: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ) ซึ่งหมายความว่ากระบวนการ Mongo ควรใช้ประมาณ 100% ของ หน่วยความจำกายภาพที่มีอยู่ แต่ถ้าคุณดูผลลัพธ์ต่อไปนี้จากtop
คำสั่งคุณจะเห็นว่าอินสแตนซ์ mongod นั้นใช้หน่วยความจำภายใน 2GB เท่านั้นและมีหน่วยความจำกายภาพฟรี 2GB เต็มรูปแบบที่มีอยู่ซึ่งไม่ได้ใช้งานเลย
บางคนสามารถอธิบายพฤติกรรมนี้ให้ฉันฟังได้ไหม ทำไมถึงมีหน่วยความจำ 2GB ฟรี
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 มีพฤติกรรมตามที่ฉันคาดหวังและใช้หน่วยความจำที่มีอยู่ทั้งหมด
- เมื่อมองไปที่ mongostat ดูเหมือนว่าจะมีข้อผิดพลาดบางหน้าอยู่เสมอดังนั้นจำนวนหน่วยความจำที่ใช้ควรเพิ่มขึ้น:
- (ฉันถามคำถามเดียวกันนี้ในกลุ่มผู้ใช้ mongodb-user แต่ไม่ได้รับคำตอบ)
uname
แต่ฉันไม่ได้lsb-release
ติดตั้ง
lsb-release -a
และuname -a
โปรด)