为什么MongoDB一次预分配这么多数据文件?

为什么MongoDB一次预分配这么多数据文件?,mongodb,Mongodb,我们的MongoDB目前约为1.2TB。我们在服务器上总共有2TB的磁盘空间,在一个晚上,它创建了几个2GB的数据文件,耗尽了所有的磁盘空间并使进程崩溃 当我查看数据文件时,我注意到它每隔几天就预先分配一些文件,在某一点上生成超过140GB的文件 如何控制此操作?如果要控制生成的数据文件的大小,在启动mongod时,您可以使用以下选项: --smallfiles以减小初始数据文件大小并将其最大限制为512MB --quota和--quotaFiles来调整每个MongoDB数据库允许的最大数据

我们的MongoDB目前约为1.2TB。我们在服务器上总共有2TB的磁盘空间,在一个晚上,它创建了几个2GB的数据文件,耗尽了所有的磁盘空间并使进程崩溃

当我查看数据文件时,我注意到它每隔几天就预先分配一些文件,在某一点上生成超过140GB的文件


如何控制此操作?

如果要控制生成的数据文件的大小,在启动
mongod
时,您可以使用以下选项:

  • --smallfiles
    以减小初始数据文件大小并将其最大限制为512MB

  • --quota
    --quotaFiles
    来调整每个MongoDB数据库允许的最大数据文件数


可能与@BlakesSeven重复否,公认的答案是存在oplog问题,但我不使用副本集。这里有几个答案,尽管特定问题使用副本集(因此需要附加文件),但这里讨论了分配和解决方案的基本概念。