Esegui un server di configurazione MongoDB senza 3 GB di file journal


9

Per un'installazione MongoDB con produzione ridotta abbiamo bisogno di 3 server di configurazione. Secondo la documentazione "il processo mongod del server di configurazione è abbastanza leggero e può essere eseguito su macchine che svolgono altri lavori". Tuttavia, nella configurazione predefinita, tutti hanno il journaling abilitato e con preallocazione occupa 3 GB di spazio su disco. Suppongo che il volume effettivo di dati e transazioni di un server di configurazione sia piuttosto piccolo, quindi questo sembra un po 'troppo.

Esiste un modo (sicuro!) Per eseguire questi server di configurazione con un uso del disco molto minore per il journal? Ho bisogno di journaling su tutti i server di configurazione? Posso impostare una dimensione del diario più piccola?

Risposte:


10

Sì, esiste un modo per ridurre al minimo le dimensioni predefinite dei file journal, fatte salve alcune avvertenze. Dalla documentazione di configurazione di MongoDB :

Per ridurre l'impatto del journaling sull'utilizzo del disco, è possibile lasciare il journal abilitato e impostare smallfile su true per ridurre la dimensione dei dati e dei file journal.

Ecco le smallfilesinformazioni di configurazione:

Impostare su true per modificare MongoDB per utilizzare una dimensione del file di dati predefinita più piccola. In particolare, i file piccoli riducono la dimensione iniziale dei file di dati e li limitano a 512 megabyte. L'impostazione dei file piccoli riduce inoltre la dimensione di ciascun file journal da 1 gigabyte a 128 megabyte.

Utilizzare l'impostazione smallfiles se si dispone di un numero elevato di database che contengono ciascuno una piccola quantità di dati. L'impostazione di piccoli file può portare mongod a creare molti file, il che può influire sulle prestazioni di database più grandi.


0

È possibile alcuni membri, di replica , utilizzare il journaling e altri no. [1]

Puoi impostare la dimensione del jounral in modo che sia più piccola usando la riga di comando "--smallfiles". [2]


E qualcuno di questi è raccomandato?
Thilo,

MongoDB esegue la pre-allocazione con i file journal per evitare di dover perdere tempo con esso in un secondo momento. Se sei preoccupato per lo spazio su disco più che per le prestazioni, è un'opzione. Consiglierei di lasciare il journaling su tutte le macchine, non si sa mai quando e come potrebbe accadere un incidente. Non puoi mai essere troppo sicuro.
Nican,

1
Questa è ovviamente una buona linea guida. Ma le menti indagatrici vogliono sapere se un server di configurazione ha un volume di transazione che necessita di 3 GB di giornali e se ci sono vantaggi nell'avere giornali a parte un tempo di avvio più rapido dopo un arresto (si noti che con 3 server di configurazione, non dovrebbe esserci qualsiasi perdita di dati, anche senza journaling, giusto?) E quanto più veloce comunque con la piccola quantità di dati di sola configurazione. Mi sembra che le regole qui dovrebbero essere diverse per i nodi di replica e i server di configurazione. I documenti dicono che "dovresti stare bene se riesci a recuperarne uno entro un giorno" per esempio.
Thilo,

0

Puoi iniziare mongod con l'opzione --nojournal, ma sarei molto sicuro dei backup del tuo server di configurazione.


1
Quanto più certo devo essere che avere tre server di configurazione su tre macchine diverse? Inoltre, qual è la procedura per eseguire i backup del server di configurazione? Se non eseguo il backup dopo ogni modifica (ad esempio raccolta aggiunta o evento di sharding), non riesco a ripristinare da questi backup obsoleti, giusto?
Thilo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.