MongoDb: избегайте чрезмерного дискового пространства - PullRequest
7 голосов
/ 22 августа 2011

У меня есть база данных, которой было выделено пространство 85 ГБ. Я получил этот размер с помощью команды show dbs. Но когда я использую db.stats (), я получаю размер хранилища 63 ГБ. После просмотра документов я обнаружил, что dat mongo db назначает размер создаваемой БД, а затем заполняет фактические данные.

Почему Монго делает это предварительное распределение и есть ли способ, которым я могу избежать этого предварительного распределения?

Если да, будет ли это хорошей идеей или это повлияет с точки зрения производительности?

Спасибо !!!

Ответы [ 2 ]

4 голосов
/ 22 августа 2011

Подробности можно найти здесь: http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

Теперь к вашему делу. Я думаю, что текущий размер ваших файлов данных не может быть вызван одним только предварительным распределением. Максимальный размер выделенных файлов данных составляет 2G. Может быть, вы когда-то хранили гораздо больше данных, чем сегодня? Ссылка выше также показывает, как вернуть эти данные, если вы уверены, что они вам в скором времени не понадобятся. Это потребует много дискового пространства во время процесса, поэтому вы должны уделить этому внимание.

Отключение предварительного выделения действительно повлияет на производительность. Когда вы выполняете много операций вставки, процессу регулярно приходится ждать создания нового файла.

0 голосов
/ 22 августа 2011

Вы можете отключить предварительное выделение с помощью параметра командной строки --noprealloc .


Вы можете прочитать больше здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...