我正在使用MongoDB进行简单的应用程序并遇到一些不良行为。基本上,我的集合由许多(字符串,整数)元组组成,每个元组平均应该少于64个字节作为文档(包括_id)。我的收藏中有一个索引 - 根据字符串。
在添加了大约800万个文档之后,我没有添加任何新文档,因为我达到了2.5 GB的限制(我有一个32位操作系统)。看起来我做错了什么,因为我没有看到为什么它应该达到那么大的原因。
有关如何排除故障的任何想法或建议? 显然,我很快就会切换到64位操作系统,但我想先了解这种行为。
更新(2):
一旦db“填满”,这就是collection stats命令的输出:
> db.hits.stats()
{
"ns" : "testdb.hits",
"count" : 8716619,
"size" : 611603992,
"avgObjSize" : 70.16527761509366,
"storageSize" : 828148736,
"numExtents" : 21,
"nindexes" : 2,
"lastExtentSize" : 145841408,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 1007568128,
"indexSizes" : {
"_id_" : 360636416,
"article_-1" : 646931712
},
"ok" : 1
}
,这是db stats命令的输出:
> db.stats()
{
"collections" : 3,
"objects" : 8716625,
"avgObjSize" : 70.16526281674386,
"dataSize" : 611604284,
"storageSize" : 828153856,
"numExtents" : 23,
"indexes" : 2,
"indexSize" : 1007568128,
"fileSize" : 3154116608,
"ok" : 1
}
更新(3): db文件本身:
-rw------- 1 mongodb nogroup 64M 2011-11-14 14:06 testdb.0
-rw------- 1 mongodb nogroup 128M 2011-11-14 14:06 testdb.1
-rw------- 1 mongodb nogroup 256M 2011-11-14 14:06 testdb.2
-rw------- 1 mongodb nogroup 512M 2011-11-14 14:06 testdb.3
-rw------- 1 mongodb nogroup 512M 2011-11-14 14:06 testdb.4
-rw------- 1 mongodb nogroup 512M 2011-11-14 14:06 testdb.5
-rw------- 1 mongodb nogroup 512M 2011-11-14 11:20 testdb.6
-rw------- 1 mongodb nogroup 512M 2011-11-10 10:51 testdb.7
-rw------- 1 mongodb nogroup 16M 2011-11-14 14:05 testdb.ns
答案 0 :(得分:1)
您可以发布数据库文件大小吗?数据本身是120MB,加上2个索引的180MB,所以你理所当然地希望它符合你的2GB限制,但我想mongodb可能正在做aggressive preallocation of reserved space to avoid file system fragmentation configured。