Монго «prealloc» файлы занимают место

38

Я пытаюсь освободить место на сервере Ubuntu под управлением Mongo. Я прикрепил новый, пустой объем 8 ГБ, и у меня есть место для перемещения вещей.

У меня есть несколько больших (1GB) файлов в /var/lib/mongodb/journal/prealloc, можно ли их удалить или переместить? Если я смогу их переместить - может ли кто-нибудь дать мне указатель на то, как это сделать для Монго?

  • 0
    Я уже подключил и установил свой новый том, просто нужно знать об этих заранее выделенных кусках пространства.
  • 3
    Через год понял, насколько наивным был «большой» по отношению к 1ГБ: /
Теги:

2 ответа

46
Лучший ответ

Итак, теоретически файлы prealloc являются предварительно распределенными файлами журнала. Это противоречит используемым файлам журнала, которые имеют формат j._X, где X - это цифра.

Цель здесь состоит в том, чтобы "следующий" файл уже был выделен, когда последний файл исчерпан. Предварительное распределение часто намного быстрее, чем распределение по требованию.

Безопасно ли их удалить или переместить?

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

Файлы prealloc не содержат данных, а скорее представляют собой предварительно подготовленные файлы, которые готовы к использованию, которые действительно предопределены файловой системой (т.е. они не являются "разреженными" ). Таким образом, безопасно удалять их, но если вы перезапустите mongod с журналом, он будет создавать их снова, если они отсутствуют. *

  • 14
    Ах, ты прав. Я удалил эти файлы (и освободил 3 ГБ места), затем отредактировал /etc/mongodb.conf и изменил dbpath на новое место монтирования и установил nojournal = true, что «Отключает ведение журнала при записи». Теперь, когда у меня достаточно места, я могу это закомментировать, и, скорее всего, так и будет, так как это кажется более безопасной ставкой. Спасибо @GatesVP
  • 5
    Некоторые оговорки: 8GB не считается много места в MongoDB-земле. Этот механизм ведения журнала изначально назывался «долговечность одного сервера», поскольку настройки по умолчанию MongoDB очень нестабильны. Если у вас нет ведения журнала ( по умолчанию в 2.0+ ), то вы можете рассмотреть возможность установки реплики. В противном случае ваши данные очень подвержены коррупции.
Показать ещё 3 комментария
6

Добавьте "smallfiles = true" в конфигурационный файл MongoDB.

  • 0
    Это заставит MongoDB использовать 128M prealloc-файлов вместо 1ГБ, но, похоже, не уменьшает общий размер журнала.
  • 1
    Если я установлю эту опцию и перезапущу mongodb, будут ли уменьшены существующие файлы?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню