5

我想在我的新项目中使用 mongodb。问题是,mongo 使用预分配文件:

每个数据文件都预先分配给特定的大小。(这样做是为了防止文件系统碎片,以及其他原因。)数据库的第一个文件名是 .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)

我想知道使用小文件对生产有好处吗?以及它的缺点是什么。

没有 noprealloc 开关,但它在生产中并不好。但没有关于小文件的说明。

4

2 回答 2

6

如果您正在创建一大堆数据库,您通常只会使用小文件,如果您只使用几个数据库,它不会为您节省足够的麻烦。

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

于 2012-07-23T15:16:52.917 回答
1

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

于 2014-07-31T22:30:34.033 回答