2012-01-24 94 views
0

嘗試向我的MongoDB中插入數據時,出現「存儲空間不足」錯誤。但從統計數字看,我遠沒有接近規模限制。MongoDB沒有足夠的存儲空間,32位

> 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低於這個值時出現這個錯誤?

回答

3

首先。該約束適用於fileSize,因爲存儲引擎使用內存映射文件。目前這個容量爲1Gb。 MongoDB可能會預先分配一個新的數據文件,該數據文件的大小可能爲1Gb(默認大小爲64mb,128mb,256mb,512mb,1Gb,並且每個附加數據文件在2Gb上)。你可能正處於你有512MB一個而不是1Gb的那一點。

坦率地說,我認爲在32位環境中使用MongoDB是絕對不行的,但如果您堅持使用它,您可以嘗試使用--smallfiles選項,該選項分配最多512Mb的較小文件。

+0

是的,我知道這是一個32位系統上很爛,但是我現在堅持它。使用--smallfiles選項提供了非常好的建議,現在我已經實現了該功能,並在修復後使其工作。謝謝。 –

+0

你知道日記是否會計入大小限制? –

+0

它的確如此。它也是內存映射。 –

相關問題