2011-08-22 10 views
7

Ho un database a cui è stato assegnato uno spazio di 85 GB. Ho preso questa dimensione usando il comando show dbs. Ma quando uso db.stats(), ottengo le dimensioni di archiviazione come 63 GB. Dopo aver esaminato i documenti, ho trovato che dat mongo db assegna una dimensione al db che viene creata e quindi i dati effettivi vengono riempiti.MongoDb: evitare spazio su disco eccessivo

Perché mongo fa questa preallocazione e c'è un modo per evitare questa preallocazione?

Se sì, sarà una buona idea farlo o interesserà dal punto di vista delle prestazioni?

Grazie !!!

risposta

4

dettagli si possono trovare qui: http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

Ora al vostro caso. Penso che la dimensione attuale dei tuoi file di dati non possa essere causata solo dalla preallocazione. La dimensione massima dei file di dati allocati è 2G. Forse una volta hai memorizzato molti più dati di oggi? Il link sopra mostra anche come recuperare questi dati se sei sicuro di non averne bisogno presto. Ciò richiederà molto spazio su disco durante il processo, quindi è necessario dare un po 'di pianificazione.

La disattivazione della preallocazione avrà effettivamente un impatto sulla perfomance. Quando si eseguono molti inserti, il processo dovrebbe regolarmente attendere per creare un nuovo file.

+0

Hey, grazie per la risposta .... la differenza nella dimensione è dovuta al fatto che una volta avevo memorizzato i dati e li ho cancellati. Passando attraverso i documenti per i quali hai fornito il link, userò il comando db.runCommand ({compact: 'collectionname'} per compattare la raccolta. –

0

È possibile disabilitare la preallocazione con --noprealloc command line parameter.


Si può leggere di più here

+0

A partire dalla versione 2.6 questo flag è obsoleto. --noprealloc è ora il valore predefinito. – binarysubstrate

Problemi correlati