MongoDB - Datei Größe ist riesig und wächst
Ich habe eine Anwendung, in der mongo für die Speicherung kurzlebige Daten. Alle Daten, die älter als 45 Minuten entfernt von einem Skript etwas ähnliches wie:
oldSearches = [list of old searches]
connection = Connection()
db = connection.searchDB
res = db.results.remove{'search_id':{"$in":oldSearches}})
Hab ich überprüft den aktuellen status -
>db.results.stats()
{
"ns" : "searchDB.results",
"count" : 2865,
"size" : 1003859656,
"storageSize" : 29315124464,
"nindexes" : 1,
"ok" : 1
}
So, nach dieser 1 GB Daten belegt 29GB Speicher. Daten-Ordner sieht wie folgt aus(Sie können sehen, dass viele Dateien sehr alt sind - letzten Zugriff auf die in der Mitte des Mai):
ls -l /var/lib/mongodb/
total 31506556
-rwxr-xr-x 1 mongodb nogroup 6 2011-06-05 18:28 mongod.lock
-rw------- 1 mongodb nogroup 67108864 2011-05-13 17:45 searchDB.0
-rw------- 1 mongodb nogroup 134217728 2011-05-13 14:45 searchDB.1
-rw------- 1 mongodb nogroup 2146435072 2011-05-20 20:45 searchDB.10
-rw------- 1 mongodb nogroup 2146435072 2011-05-28 00:00 searchDB.11
-rw------- 1 mongodb nogroup 2146435072 2011-05-27 13:45 searchDB.12
-rw------- 1 mongodb nogroup 2146435072 2011-05-29 16:45 searchDB.13
-rw------- 1 mongodb nogroup 2146435072 2011-06-07 13:50 searchDB.14
-rw------- 1 mongodb nogroup 2146435072 2011-06-06 01:45 searchDB.15
-rw------- 1 mongodb nogroup 2146435072 2011-06-07 13:50 searchDB.16
-rw------- 1 mongodb nogroup 2146435072 2011-06-07 13:50 searchDB.17
-rw------- 1 mongodb nogroup 2146435072 2011-06-06 09:07 searchDB.18
-rw------- 1 mongodb nogroup 268435456 2011-05-13 14:45 searchDB.2
-rw------- 1 mongodb nogroup 536870912 2011-05-11 00:45 searchDB.3
-rw------- 1 mongodb nogroup 1073741824 2011-05-29 23:37 searchDB.4
-rw------- 1 mongodb nogroup 2146435072 2011-05-13 17:45 searchDB.5
-rw------- 1 mongodb nogroup 2146435072 2011-05-18 17:45 searchDB.6
-rw------- 1 mongodb nogroup 2146435072 2011-05-16 01:45 searchDB.7
-rw------- 1 mongodb nogroup 2146435072 2011-05-17 13:45 searchDB.8
-rw------- 1 mongodb nogroup 2146435072 2011-05-23 16:45 searchDB.9
-rw------- 1 mongodb nogroup 16777216 2011-06-07 13:50 searchDB.ns
-rw------- 1 mongodb nogroup 67108864 2011-04-23 18:51 test.0
-rw------- 1 mongodb nogroup 16777216 2011-04-23 18:51 test.ns
Laut "top" mongod verwendet 29G des virtuellen Speichers ( und 780Mb RSS)
Warum habe ich solche abnormen Werte? Muss ich noch etwas laufen zusätzliche .die remove() Funktion Datenbank bereinigen von alten Werten?
InformationsquelleAutor der Frage Andrew | 2011-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://www.mongodb.org/display/DOCS/Caching
Wenn Sie ein Objekt entfernen, von MongoDB collection, den Raum, den es besetzt ist, nicht automatisch Müll gesammelt und neue Daten nur am Ende angehängt von Daten-Dateien, so dass Sie wachsen größer und größer. Das erklärt alles:
http://www.mongodb.org/display/DOCS/Excessive+Festplatte+Speicherplatz
Für den Anfang, verwenden Sie einfach:
InformationsquelleAutor der Antwort Tomasz Nurkiewicz