In meiner Mongo-Datenbank habe ich eine Sammlung mit 5GB, eine mit 10MB und einige ohne Begrenzung. Keine der nicht gecappten enthält mehr als 20 kleine Dokumente.
Nach langem (4h) Stresstest, der nur auf 5GB Capped Collection schreibt, verwendet meine Datenbank 18GBs.
Das sagt meine db.stats (Werte in MBs):
%Vor%Und das sind 5 GB Sammelstatistik (Werte in MB):
%Vor%Warum ist FileSize so viel größer als storageSize? Ich kann RepairDatabase () jetzt nicht einmal ausführen, aber ich habe compact () für jede nicht gecappte Sammlung versucht, ohne Ergebnis. Eigentlich wurde dies erwartet, da db vor dem Stresstest sauber war. Ich meine, Dateien wurden gelöscht, nicht nur Sammlungen gelöscht.
Aus Logs kann ich sehen, dass während des Stresstests in ~ 1h Intervallen zusätzliche Datendateien erstellt wurden.
Einige Protokolle: Ссылка
UPDATE: Nach einer weiteren Nacht und einem weiteren 4-stündigen Stresstest sind es 28 GB: (
%Vor%Dies geschieht aufgrund eines Fehlers in MongoDB bei der Wiederverwendung von Speicherplatz für gedeckelte Sammlungen. Es wurde als SERVER-9489 eingereicht und wird bald getestet und hoffentlich bald repariert werden.
Die Art und Weise, wie Sie Ihre Stresstests fortsetzen können, ohne den Speicherplatz zu verlieren, besteht darin, das Test-DB-Verzeichnis nach dem Test zu löschen und dann beim Ausführen des neuen Tests ein neues zu erstellen (vorausgesetzt, Sie benötigen es nicht) die gleichen Daten wiederverwenden). Wenn Sie die gleichen Daten benötigen, können Sie mongodump verwenden, um es von "run to run" zu erhalten, obwohl es möglicherweise einfachere Optionen gibt, die von Ihrer genauen Verwendung abhängen.
Tags und Links mongodb