MongoDB存储空间不足,32位



我在尝试将数据插入MongoDB时遇到"存储空间不足"错误。但从统计数据来看,我的体型还远远没有达到极限。

> db.stats()
{
        "db" : "{my db name}",
        "collections" : 20,
        "objects" : 281092,
        "avgObjSize" : 806.4220539894412,
        "dataSize" : 226678788,
        "storageSize" : 470056960,
        "numExtents" : 95,
        "indexes" : 18,
        "indexSize" : 13891024,
        "fileSize" : 1056702464,
        "nsSizeMB" : 16,
        "ok" : 1
}

日志记录已打开,但日志文件大小只有262232 KB。

已创建大小为524032 KB的数据文件,尽管dataSize低于262144 KB的较小文件。

NS文件大小为16384 KB。

我读过很多地方说这个错误是由大约2GB的32位大小限制引起的,但为什么我的dataSize低于这个值时会出现这个错误呢?

首先。该约束适用于fileSize,因为存储引擎使用内存映射的文件。这对您来说目前是1Gb。可能是MongoDB即将预先分配一个新的数据文件,该文件的大小可能为1Gb(默认大小为64mb、128mb、256mb、512mb、1Gb,此后每个额外的数据文件的大小为2Gb)。你可能已经到了拥有512mb但没有1Gb的地步。

坦率地说,我认为在32位环境中使用MongoDB是绝对不可行的,但如果你坚持使用它,你可以尝试--smallfiles选项,它可以分配最多512Mb的较小文件。

最新更新