mongo db --smallfiles切换缺点

fze*_*igd 5 mongodb

我想在我的新项目中使用mongodb.问题是,mongo使用pre-alocate文件:

每个数据文件都预先分配到特定大小.(这样做是为了防止文件系统碎片,以及其他原因.)数据库的第一个文件名是.0,然后是.1等.0将是64MB,.1 128MB等等,最多2GB.一旦文件大小达到2GB,每个连续文件也是2GB.因此,如果最后存在的数据文件是1GB,那么如果最近创建该文件可能是90%为空.

从这里:http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

它的正常情况下有许多2GB文件.有一个--smallfiles开关,将此文件限制为512MB

--smallfiles =>使用较小的初始文件大小(16MB)和最大大小(512MB)

我想知道使用smallfiles对生产有好处吗?它的缺点是什么?

有noprealloc开关,但它的生产不好.但是没有关于小文件的说明.

MrK*_*urt 6

如果你正在创建一大堆数据库,通常只会使用smallfiles,如果你只是在几个数据库中运行,那么它就不会让你节省下来.

对于拥有许多DBS(实际上受益于小文件)的客户,我们没有看到任何性能问题.但是,与其他安装相比,它们的活动水平通常较低.基于Mongo正在做什么,做一些操作可能会稍微慢些但我认为你不会注意到.

  • 另外另一个注意事项是--smallfiles对仲裁者有好处 - 仲裁者通常会在启动时预先分配大量文件(例如日志),因为在启动时它还不知道它是仲裁者. (2认同)
  • @AdamC很好,但你也可以为仲裁者转换日记(nojournal = true). (2认同)