作为here值得一提的是,mongodb 在具有一个 mongod 实例的 32 位机器中将数据大小限制为 2GB。但我想知道 32 位机器理论上有 4GB 的可寻址空间,而 mongod 可以使用这 4GB 而不是 2GB 来使用虚拟内存。那么为什么答案是2GB,而不是4GB呢?
最佳答案
4Gb 的可寻址空间与用户应用程序打开的内存映射文件可用的内存空间不同。一些可寻址空间是为操作系统内核和内存映射设备(如视频卡)保留的。
例如,32 位 Windows 将用户模式(以及内存映射文件)限制为 ~2Gb RAM,总系统 RAM 为~3.5Gb。
更多阅读,请参阅:
- Coding Horror: Dude, Where's My 4 Gigabytes of RAM?
- MSDN: Managing Memory-Mapped Files
- MSDN: Memory-Mapped Files
大多数现代桌面和服务器环境大约在十年前就开始转向 64 位(请参阅 64-bit operating system timeline on Wikipedia),因此这并不是实际影响部署的限制。
您只想在数据有限的开发环境中使用 32 位 MongoDB。
关于mongodb - 为什么 32 位机器上的 mongodb 数据大小限制为 2GB,而不是 4GB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059725/