尝试将数据插入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。
虽然dataSize低于262144 KB的较小文件,但已创建大小为524032 KB的数据文件。
NS文件为16384 KB。
我已经读过几个地方,这个错误是由32位大约2 GB的大小限制引起的,但是当我的dataSize低于那个时,为什么我会收到此错误?
答案 0 :(得分:3)
首先。该约束适用于fileSize,因为存储引擎使用内存映射文件。这个目前为1Gb。可能的是,MongoDB即将预分配一个新的数据文件,该文件的大小可能是1Gb(默认大小为64mb,128mb,256mb,512mb,1Gb,每个附加数据文件的格式为2Gb)。你可能正处于512mb而不是1Gb的位置。
坦率地说,我认为在32位环境中使用MongoDB是绝对禁止的,但如果您坚持使用它,您可以尝试使用--smallfiles选项,该选项分配最多512Mb的较小文件。