MongoDB采用64位系统 - 它是指硬件还是操作系统内核,还是两者兼而有之?

时间:2010-09-15 11:09:28

标签: mongodb 32bit-64bit nosql

This post says如果您的数据大于2GB,则需要一个64位系统用于MongoDB。

在我的本地计算机上,运行32位Mac OS X Leopard的64位Intel C2D,MongoDB 64位版本运行时没有任何错误。

在服务器上,运行32位CentOS 5.0的64位机器,64位MongoDB将无法运行。 32位运行正常。

我的问题是,MongoDB是否要求硬件和OS内核都是64位?如果是这样,为什么我在上述系统中的经验存在差异?

3 个答案:

答案 0 :(得分:1)

如果您的数据是> 2GB,内核需要能够解决> 2GB内存。这需要64位内核,或者您可以尝试使用PAE内核扩展来允许32位内核来寻址更多RAM。

也许MAC OS X已经有类似PAE扩展的东西,因此存在差异。

答案 1 :(得分:1)

实际上,要求是如果你想使用超过2GB的数据,你需要使用64位版本的mongod可执行文件。这需要一个64位操作系统,而这又需要64位硬件。

该要求与物理ram无关,而且与单个进程可以解决的虚拟内存有多大关系。由于mongodb使用mmap映射数据文件的内容,因此必须至少有足够的虚拟地址空间来容纳所有数据。请注意,PAE增加的虚拟地址空间。 PAE纯粹是物理地址扩展,允许您拥有超过大约3.5GB的RAM。

编辑:看起来以32位模式运行的内核可以以支持64位用户空间的方式编写。在64位硬件上运行的OSX是我所知道的唯一使用它的例子。在Windows和Linux上,您必须安装64位版本的操作系统才能运行64位软件。

答案 2 :(得分:0)

MAC OS X是一种特殊情况,因为它非常难以隐藏用户的整个32/64位内容。 Leopard,afaik,已经通过一些技巧支持64位应用程序。