Ich habe Daten im Wert von etwa 200 GB in einem Mongo-Cluster gespeichert. Der physische Speicher auf einer der Instanzen, auf denen mongo ausgeführt wird, beträgt 8 GB. In dieser Instanz läuft nichts anderes von Bedeutung. Soweit ich anhand von Mongos Dokumenten verstehen kann (wie dieses: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ), sollte der Mongod-Prozess ungefähr 100% von verwenden den verfügbaren physischen Speicher. Wenn Sie sich jedoch die folgende Ausgabe des top
Befehls ansehen, werden Sie feststellen, dass die Mongod-Instanz nur 2 GB residenten Speicher verwendet und dass volle 2 GB freier physischer Speicher verfügbar sind, der überhaupt nicht verwendet wird.
Kann mir jemand dieses Verhalten erklären? Warum gibt es 2 GB freien Speicher?
top
Ausgabe:
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
...
Systeminformationen:
$ uname -a
Linux aluminum 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU/Linux
Anmerkungen:
- Es gibt eine andere Instanz in diesem Cluster, in der sich Mongod wie erwartet verhält und den gesamten verfügbaren Speicher nutzt.
- Mit Blick auf mongostat es wie konsequent einige Verwerfungen Seite aufweisenden wurden aussieht, so die Menge des verwendeten Speichers sollte wächst:
- (Ich habe dieselbe Frage in der Google-Gruppe der Mongodb-Nutzer gestellt, aber keine Antwort erhalten.)
uname
aber ich habe nicht lsb-release
installiert.
lsb-release -a
unduname -a
bitte)