Führen Sie einen MongoDB-Konfigurationsserver ohne 3 GB Journaldateien aus


9

Für eine produktionsgesplitterte MongoDB-Installation benötigen wir 3 Konfigurationsserver. Laut Dokumentation "ist der Konfigurationsserver-Mongod-Prozess ziemlich leicht und kann auf Computern ausgeführt werden, die andere Arbeiten ausführen". In der Standardkonfiguration ist jedoch für alle das Journaling aktiviert, und bei der Vorbelegung werden 3 GB Festplattenspeicher belegt. Ich gehe davon aus, dass das tatsächliche Daten- und Transaktionsvolumen eines Konfigurationsservers recht klein ist, so dass dies etwas zu viel erscheint.

Gibt es eine Möglichkeit, diese Konfigurationsserver (sicher!) Mit viel weniger Festplattenverbrauch für das Journal auszuführen? Muss ich auf Konfigurationsservern überhaupt ein Journal erstellen? Kann ich die Journalgröße kleiner einstellen?

Antworten:


10

Ja, es gibt eine Möglichkeit, die Standardgröße der Journaldateien zu minimieren, wobei einige Einschränkungen gelten. Aus der MongoDB-Konfigurationsdokumentation :

Um die Auswirkungen des Journalings auf die Festplattennutzung zu verringern, können Sie das Journal aktiviert lassen und kleine Dateien auf true setzen, um die Größe der Daten und Journaldateien zu verringern.

Hier sind die smallfilesKonfigurationsinformationen:

Setzen Sie diesen Wert auf true, um MongoDB so zu ändern, dass eine kleinere Standarddatendateigröße verwendet wird. Insbesondere verkleinern kleine Dateien die anfängliche Größe von Datendateien und beschränken sie auf 512 Megabyte. Die Einstellung für kleine Dateien reduziert auch die Größe der einzelnen Journaldateien von 1 Gigabyte auf 128 Megabyte.

Verwenden Sie die Einstellung für kleine Dateien, wenn Sie über eine große Anzahl von Datenbanken verfügen, die jeweils eine kleine Datenmenge enthalten. Die Einstellung für kleine Dateien kann dazu führen, dass mongod viele Dateien erstellt, was die Leistung größerer Datenbanken beeinträchtigen kann.


0

Sie können einige Mitglieder der Replikation , Journaling verwenden und andere nicht. [1]

Sie können die Größe des Jounrals mithilfe der Befehlszeile "--smallfiles" kleiner einstellen. [2]


Und wird irgendetwas davon empfohlen?
Thilo

MongoDB führt eine Vorabzuweisung mit Journaldateien durch, um zu vermeiden, dass später Zeit damit verschwendet werden muss. Wenn Sie sich mehr Sorgen um Speicherplatz als um Leistung machen, ist dies eine Option. Ich würde empfehlen, das Journaling auf allen Computern aktiviert zu lassen. Sie wissen nie, wann und wie ein Absturz auftreten kann. Sie können nie zu sicher sein.
Nican

1
Das ist natürlich eine gute Richtlinie. Aber fragende Köpfe möchten wissen, ob ein Konfigurationsserver ein Transaktionsvolumen hat, das 3 GB Journale benötigt, und ob es einen Vorteil hat, Journale zu haben, außer einer schnelleren Startzeit nach einem Absturz (beachten Sie, dass dies bei 3 Konfigurationsservern nicht der Fall sein sollte Datenverlust, auch ohne Journaling, oder?) Und wie viel schneller mit der geringen Menge an Nur-Konfigurationsdaten. Es scheint mir, dass die Regeln hier für Replikatknoten und Konfigurationsserver unterschiedlich sein sollten. In den Dokumenten heißt es beispielsweise: "Es sollte Ihnen gut gehen, wenn Sie einen von ihnen innerhalb eines Tages wiederherstellen können."
Thilo

0

Sie können mongod mit der Option --nojournal starten, aber ich wäre mir sehr sicher über Ihre Konfigurationsserver-Backups.


1
Wie viel sicherer muss ich sein, als drei Konfigurationsserver auf drei verschiedenen Computern zu haben? Wie wird auch vorgegangen, um Sicherungen des Konfigurationsservers zu erstellen? Wenn ich nicht nach jeder Änderung ein Backup mache (z. B. Sammlung hinzugefügt oder Sharding-Ereignis), kann ich diese veralteten Backups nicht wiederherstellen, oder?
Thilo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.