2012-07-23 8 views
5

Ich möchte mongodb für mein neues Projekt verwenden. Das Problem ist, dass Sie vordefinierte Dateien verwenden:mongo db --smallfiles Switch Nachteile

Jede Datendatei ist auf eine bestimmte Größe vorbelegt. (Dies geschieht unter anderem, um eine Fragmentierung des Dateisystems zu verhindern.) Der erste Dateiname für eine Datenbank lautet .0, dann .1 usw. 0 ist 64 MB, 1 128 MB und so weiter, bis zu 2 GB. Sobald die Dateien 2 GB groß sind, beträgt jede weitere Datei 2 GB. Wenn die letzte vorhandene Datendatei beispielsweise 1 GB beträgt, ist diese Datei möglicherweise zu 90% leer, wenn sie zuletzt erstellt wurde.

von hier: http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

Und seine normalen darin viele 2GB Dateien mit nichts zu haben. gibt es einen --smallfiles Schalter, zu begrenzen diese

--smallfiles => Verwenden Sie Größe eine kleinere ursprüngliche Datei (16 MB) und die maximale Größe (512 MB)

Ich möchte 512 MB Dateien wissen Kleine Dateien zu verwenden ist gut für die Produktion? und was sind seine Nachteile.

gibt es Noprealloc-Schalter, aber es ist nicht gut in der Produktion. aber es gibt keine Notiz über kleine Dateien.

Antwort

6

Normalerweise würden Sie nur smallfiles verwenden, wenn Sie eine ganze Reihe von Datenbanken erstellen. Wenn Sie nur aus ein paar Datenbanken arbeiten, sparen Sie nicht genug, um sich damit herumzuärgern.

Wir haben keine Leistungsprobleme damit für Kunden gesehen, die viele, viele DBS haben (und tatsächlich von kleinen Dateien profitieren). Ihr Aktivitätslevel ist normalerweise etwas niedriger als bei anderen Installationen. Basierend auf dem, was Mongo macht, könnte es etwas langsamer sein, einige Operationen durchzuführen, aber ich denke nicht, dass du es jemals bemerken wirst.

+2

Eine andere Anmerkung hier ist, dass --smallfiles ist gut auf Schiedsrichter - ein Schiedsrichter wird oft viele Dateien (Journal zum Beispiel) beim Start voralloomen, weil es beim Start nicht tut weiß aber, es ist ein Schiedsrichter. –

+2

@AdamC Guter Punkt, aber Sie können Journaling (nojournal = true) auch für einen Arbiter aktivieren. – Mattias

1

Wenn Sie in der AWS-Cloud arbeiten und m3.small-Instanzen mit SSDs verwenden, sind Sie auf 4 GB beschränkt. Wenn Sie diese Option wählen, können Sie einen kleinen SSD-unterstützten mongodb-Knoten haben. Könnte für kleine Aufgaben ausreichend sein

+0

Ich hatte ein Problem mit zu wenig Platz in meinem Blog/Forum und ich habe 3GB kostenlos von 20GB, so kleine Dateien scheint eine gute Idee zu sein, denke kleine Dateien in kleinen Blogs/Foren verwenden, und dann auf größere Dateien auf kleinere Dateien Websites, wie Sie wachsen – wiak