多个MongoDb数据库配置

时间:2014-07-25 13:06:19

标签: mongodb

我需要创建大量的MongoDb数据库,大约1000多个,之后它将增长到3000多个。

它们将托管在具有SSD磁盘的服务器上,并且大多数数据库将具有大约20-30个集合,其中不超过500个对象。大多数物体的大小在10-50kb之间。 因此,内部数据的大小相关性很小。

我的问题是我应该如何配置这些mongodb数据库的创建,以便以最有效的方式使用磁盘空间。我已经读过mongodb分配空磁盘空间,空数据库的大小可能达到100MB,有没有办法减小这个大小?

1 个答案:

答案 0 :(得分:1)

您可以将storage.smallFiles配置选项设置为true。这将使初始数据和日志文件变小。

来自MongoDB文档:

  

storage.smallFiles选项可减少数据文件的初始大小   并将最大大小限制为512兆字节。 storage.smallFiles也   将每个日志文件的大小从1千兆字节减少到128字节   兆字节。使用storage.sma。 l如果您有大量的文件,请提交   每个数据库都包含少量数据。

根据您的工作量,您还可以更改record allocation strategyexact fit分配将使用比power of 2更少的存储空间(这是v2.6 +的默认分配策略)。但exact fit分配仅适用于没有更新和删除工作负载的集合。

修改

对于空数据库使用smallFiles选项(让我们称之为db01),MongoDB将在dbpath中创建两个大小为16MB的文件:

  1. db01.0 - 保存数据的文件
  2. db01.ns - 名称空间文件
  3. 当您向集合中添加文档时,MongoDB将为大小的数据创建其他文件:下一个将是32MB(db01.1),之后将是64MB(db01.2)...高达512MB 。所以MongoDB不会预先分配例如如果您的数据库中只有50MB的数据,那么您的数据库将为1GB(如果您担心的话)。

    如果您只担心超出磁盘大小(在小型SSD上),您也可以使用storage.directoryPerDB。每个数据库都有自己的目录,您可以链接到另一个磁盘。