Mongo rs.initiate()磁盘空间需求过多

时间:2015-09-22 16:26:31

标签: mongodb

我有2个mongod实例使用以下参数运行

  --noprealloc --smallfiles --replSet mongors1 --dbpath /data/db --nojournal

此练习的目标是创建一个复制环境,其中磁盘占用空间最小,以便进行本地开发。

此时,各个数据系统约为32M并且具有以下内容,一切都很好

ls -o data/db
total 32784
-rw------- 1 999 16777216 Sep 22 11:38 local.0
-rw------- 1 999 16777216 Sep 22 11:38 local.ns
-rwxr-xr-x 1 999        2 Sep 22 11:38 mongod.lock
-rw-r--r-- 1 999       69 Sep 22 11:38 storage.bson
drwxr-xr-x 2 999     4096 Sep 22 11:38 _tmp

登录第一个成员并运行rs.initiate();使用额外的1G磁盘空间。

ls -o data/db
total 1080856
-rw------- 1 999  16777216 Sep 22 11:39 local.0
-rw------- 1 999 536608768 Sep 22 11:39 local.1
-rw------- 1 999 536608768 Sep 22 11:39 local.2
-rw------- 1 999  16777216 Sep 22 11:39 local.ns
-rwxr-xr-x 1 999         2 Sep 22 11:38 mongod.lock
-rw-r--r-- 1 999        69 Sep 22 11:38 storage.bson
drwxr-xr-x 2 999      4096 Sep 22 11:39 _tmp

考虑到要复制的节点的属性以及它们正在运行的配置,这似乎过分了。

Mongo 3.0.6是正在使用的版本。

最终,这将扩展到2个分片中包含3个成员的副本集。最初存储零数据的6Gb最小磁盘需求似乎不是最佳的。

有没有办法将其减少到更能代表节点需求的东西?

感谢任何帮助。提前致谢

2 个答案:

答案 0 :(得分:3)

本地数据库包含oplog,我将让你自己研究一下给定节点的大小。要解决手头的问题,from the docs

  

对于64位Linux,Solaris,FreeBSD和Windows系统,MongoDB   分配可用磁盘空间的5%,但总是如此   分配至少1千兆字节,不超过50千兆字节。

这就是您的使用来源 - 要改变您需要resize the oplog的分配,或者,如果从头开始,请查看oplogSizeMB选项(或等效的CLI请参阅{{ 3}})。

答案 1 :(得分:1)

除了Adam所说的,还要添加

--oplogSize X

指向您的参数,并将X替换为您希望oplog的MB数量。