mongodb --smallfiles切换缺点

时间:2012-07-23 13:43:31

标签: 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开关,但它的生产效果不佳。但没有关于小文件的说明。

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

此外,如果在AWS云中运行并使用带有SSD的m3.small实例,则限制为4GB存储。设置此选项将允许您拥有一个支持SSD的小型mongodb节点。可以用于小任务