2013-02-25 62 views
3

as here請注意,mongodb在32位機器上將數據大小限制爲2GB,並且只有一個mongod實例。但是我想知道32位機器在理論上有4GB可尋址空間,而mongod可以使用這個4GB而不是2GB來存儲虛擬內存。那麼爲什麼答案是2GB,而不是4GB?爲什麼32位機上的mongodb將數據大小限制爲2GB,而不是4GB?

+2

在他們的博客幫助下刊登此帖子嗎? http://blog.mongodb.org/post/137788967/32-bit-limitations – Raptor 2013-02-25 03:43:54

+0

@ShivanRaptor我之前看到過這篇文章,但它不能解釋爲什麼?我想知道如何計算出結果:2GB。 – jianpx 2013-02-25 04:17:49

+0

我想(我不是一個設計mongoDB的人),2GB的數據,其餘的大小是映射,和其他支持文件。 – Raptor 2013-02-25 05:05:27

回答

8

的可尋址空間的4Gb是不一樣的是可用於由用戶應用程序打開內存映射文件的內存空間。一些可尋址空間是爲O/S內核和存儲器映射設備(如視頻卡)保留的。

例如,32位Windows將用戶模式(從而將內存映射文件)限制爲〜2Gb RAM,並將總系統RAM限制爲〜3.5Gb。

更多的閱讀,請參閱:

廣大開始遷移到64位,幾乎是十年前現代的桌面和服務器環境(請參閱64-bit operating system timeline on Wikipedia),因此這不是實際影響部署的限制。

您只想在數據有限的開發環境中使用32位MongoDB。

2

32位MongoDB進程被限制爲大約2 GB的數據。這已經讓很多習慣於不用擔心這個問題的人感到驚訝。原因是MongoDB存儲引擎使用內存映射文件來提高性能。

由於不支持32位以上的2GB以上,我們已經能夠讓我們的代碼更簡單更清晰。這大大減少了錯誤的數量,並減少了我們需要發佈1.0產品的時間。

http://blog.mongodb.org/post/137788967/32-bit-limitations

+0

公頃,差不多我們發帖 – Raptor 2013-02-25 03:44:16

+0

之前我看到過這個帖子,但是這不解釋爲什麼?我想知道如何計算出結果:2GB。 – jianpx 2013-02-25 04:19:12

+1

或者你的意思是這個限制沒有規則來計算,只是mongodb的設置? – jianpx 2013-02-25 04:19:48

相關問題