1

我想在我的日志文件夹中创建 prealloc.X 文件,没有显式创建这些文件的选项,由 mongo 决定是否进行预分配。

我使用了 --journal 选项,但这没有帮助。

请建议可以创建 prealloc.X 文件的任何方式或条件。

提前致谢!

4

2 回答 2

2

启用日记功能时,默认情况下会进行预分配(在 V2.2 及更高版本中默认启用)。事实上,如果你想禁用预分配,你需要明确告诉 mongo - 使用noprealloc标志。

我建议您首先查看nopreallocmongodb.conf 中是否设置为 true 并将其更改为 false。

但是您也可以在 mongod 启动之前手动创建 prealloc.X 以保存 Preallocation Lag。这在此处详细描述http://docs.mongodb.org/manual/administration/journaling/#avoid-preallocation-lag

这个想法是您启动 mongod 只是为了创建 prealloc.X 文件。然后停止它并将文件复制到常规 mond 的日志目录中。

于 2013-04-02T08:57:10.167 回答
1

MongoDb will actually pre-alloc 2-3GB of journal upon starting mongod, this as @balafi states is the default behaviour and you must explicitly tell MongoDB not to do this, via --smallfiles ( http://docs.mongodb.org/manual/reference/mongod/#cmdoption-mongod--smallfiles ) and/or --noprealloc ( http://docs.mongodb.org/manual/reference/mongod/#cmdoption-mongod--noprealloc ).

It is normally OK to suffer a bit of pre-allocation lag unless you are in the middle of a production shutdown and every minute = money^2.

So I would recommend checking how you are starting mongod and see if you have some options which are forcing it to start:

  • without journal
  • with smallfiles
  • with no prealloc
于 2013-04-02T13:21:20.360 回答