为什么32位机器上的mongodb数据量限制为2GB而不是4GB?

时间:2013-02-25 03:40:49

标签: mongodb

here所述,mongodb在32位机器中具有一个mongod实例的数据量限制为2GB。但我不知道32位机器理论上有4GB的可寻址空间,mongod可以使用这个4GB而不是2GB的虚拟内存。那么为什么答案是2GB而不是4GB?

2 个答案:

答案 0 :(得分:8)

4Gb的可寻址空间与用户应用程序打开的内存映射文件的可用内存空间不同。一些可寻址空间是为O / S内核和内存映射设备(如视频卡)保留的。

例如,32位Windows将用户模式(以及内存映射文件)限制为~2Gb RAM和总系统RAM至~35Gb。

如需更多阅读,请参阅:

大多数现代桌面和服务器环境几乎在十年前开始转向64位(请参阅64-bit operating system timeline on Wikipedia),因此这不是一个实际影响部署的限制。

您只想在数据有限的开发环境中使用32位MongoDB。

答案 1 :(得分:2)

  

32位MongoDB进程限制为大约2 GB的数据。对于许多习惯于不必担心的人来说,这是一个惊喜。原因是MongoDB存储引擎使用内存映射文件来提高性能。

     

由于32位不支持2gb以上,我们能够使代码更简单,更清晰。这大大减少了错误的数量,并减少了我们需要释放1.0产品的时间。

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