Указанная вами документация верна, если вы запустите команду db.fsyncLock(), вы сбросите все изменения на диск, и файлы журнала будут удалены. Как только вы запустите db.fsyncUnlock() и прибудет другая запись, файлы журнала снова появятся:
Вот краткий пример тестовой системы:
> db.foo.insert({"id" : 1})
Вот как выглядит каталог журнала:
$ls /usr/local/var/mongodb/journal/
j._1 lsn
$
Теперь давайте заблокируем и запишем все на диск:
> db.fsyncLock()
{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}
Каталог журнала теперь пуст:
$ls /usr/local/var/mongodb/journal/
$
Разблокировать, вставить:
> db.fsyncUnlock()
{ "ok" : 1, "info" : "unlock completed" }
> db.foo.insert({"id" : 1})
Теперь у нас снова есть файлы журнала:
$ls /usr/local/var/mongodb/journal/
j._2 lsn
$
Следовательно, если вы не блокируете, сбрасываете базы данных на диск и постоянно получаете записи, у вас всегда будут файлы журнала.
Точно так же, когда вы аккуратно завершаете работу экземпляра mongod
, файлы журнала будут удаляться после успешного завершения записи на диск.
Если вы хотите уменьшить размер журнальных файлов, вы можете запустить их с опцией --smallfiles
. Это даст вам 3 х 128 МБ файлов, а не 3 х 1 ГБ файлов.