Reputation: 2752
I'm getting the "not enough storage" error when trying to insert data into my MongoDB. But I'm nowhere near the size limit, as seen in the stats.
> 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
}
Journaling is on, but the journal file size is only 262232 KB.
The data file at size 524032 KB has been created, although dataSize is below the smaller file of 262144 KB.
The NS file is 16384 KB.
I've read several places that this error is caused by the size limit on a 32 bit of around 2 GB, but then why am I getting this error when my dataSize is below that?
Upvotes: 0
Views: 1330
Reputation: 18625
First of all. The constraint applies to the fileSize since the storage engine uses memory mapped files. This is currently at 1Gb for you. What is likely is that MongoDB is about to prealloc a new data file which is probably going to be 1Gb in size (the default sizes are 64mb, 128mb, 256mb, 512mb, 1Gb, and from there on 2Gb per additional data file). You're probably at the point where you have the 512mb one but not the 1Gb one.
Frankly I think using MongoDB on a 32-bit environment is an absolute no-go but if you're stuck on it you can try the --smallfiles option which is allocates smaller files of at most 512Mb.
Upvotes: 3