我可以限制mongodb文件的数量(每个2GB)吗?

我看到我的mongodb服务器正在创build这样的文件:

my_db.ns my_db.1 my_db.2 my_db.3 my_db.... my_db.15 

对于我的一些mongod进程停止到9,但有时会上升到13,14,15。 然后我在我的小AWS实例上有一些空间问题。 我不想增加大小。

我想告诉mongo(v2.6)不要超过10个文件,但是在添加新条目时不会阻塞mongo。 我想要删除最旧的数据或删除空间。

我用这个来要求mongo不要创build10个以上的文件。

 quota=true quotaFiles=8 

但后来执行一段时间,而插入,我得到这个错误:MongoError:超过配额

有没有办法强制mongo重用相同的文件或不创build新的,但没有产生错误?

谢谢

MongoDB会在旧的文件填满后添加新的文件。 如果您提到了设置配额,那么一旦空间不足,而不是分配新文件,则会出现错误。 这些基本上是你的两个select。

您可以通过configurationsmallFiles来使用较小的空间增量(但是会有更多的文件),在这种情况下,每个额外的max文件将为512MB,但是您需要在配额中允许多出约4倍的文件。 在某些情况下,如果您持续添加硬性限制(除非您知道事实不会超出限制),否则您将遇到同样的错误。

在行之间读取你想要的是更好的空间重用的存储引擎,这是一个已经讨论了很多次的话题(见我在这里的主题的答案)。 使用WiredTiger存储引擎可以find更好的使用方式,以及压缩的使用(请参阅我的testing),但磁盘空间使用情况会根据您的使用模式而变化,您甚至希望在空间方面有一些开销然后。