Ich habe eine Mongodb-Datenbank, die ungefähr 1 GB Speicherplatz belegt. Ich war überrascht, als auf meinem Server kein Speicherplatz mehr verfügbar war, und stellte dann fest, dass das Journal 3 GB verwendet.
In der Dokumentation heißt es: "Sobald MongoDB alle Schreibvorgänge in den Journaldateien anwendet, werden diese Dateien gelöscht." Dies scheint jedoch nicht der Fall zu sein, da die Datenbank synchronisiert ist und das Journal dreimal so groß ist wie die gesamte Datenbank.
Wie kann ich diese Journaldateien löschen lassen und das System so konfigurieren, dass weniger Speicherplatz benötigt wird?
linux
journaling
mongodb
lfagundes
quelle
quelle
Antworten:
Die von Ihnen angegebene Dokumentation ist korrekt. Wenn Sie den Befehl db.fsyncLock () ausführen , werden alle Änderungen auf der Festplatte gelöscht und die Journaldateien werden gelöscht. Sobald Sie db.fsyncUnlock () ausführen und ein weiterer Schreibvorgang eintrifft, werden diese Journaldateien erneut angezeigt :
Hier ist ein kurzes Beispiel für ein Testsystem:
So sieht das Journalverzeichnis aus:
Lassen Sie es uns jetzt abschließen und alles auf die Festplatte leeren:
Das Journalverzeichnis ist jetzt leer:
Entsperren, einfügen:
Jetzt haben wir wieder Journaldateien:
Wenn Sie also nicht sperren, die Datenbanken auf die Festplatte leeren und ständig Schreibvorgänge eingehen, haben Sie immer Journaldateien.
Wenn Sie eine
mongod
Instanz sauber herunterfahren , werden die Journaldateien gelöscht, sobald der Flush auf die Festplatte erfolgreich abgeschlossen wurde.Wenn Sie die Journaldateien verkleinern möchten, können Sie die Ausführung mit dieser
--smallfiles
Option prüfen. Dadurch erhalten Sie 3 x 128 MB-Dateien anstelle von 3 x 1 GB-Dateien.quelle