代码之家  ›  专栏  ›  技术社区  ›  rubayeet

MongoDB采用64位系统-是指硬件还是操作系统内核或两者?

  •  3
  • rubayeet  · 技术社区  · 14 年前

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

    在运行32位CentOS 5.0的64位机器服务器上,64位MongoDB不会运行。32位运行正常。

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

    3 回复  |  直到 7 年前
        1
  •  1
  •   mstearn    14 年前

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

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

    编辑:看起来在32位模式下运行的内核有可能以支持64位用户空间的方式编写。不过,在64位硬件上运行的OSX是我所知道的唯一一个使用此功能的示例。在windows和linux上,必须安装64位版本的操作系统才能运行64位软件。

        2
  •  1
  •   Peter    14 年前

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

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

        3
  •  0
  •   MGriesbach    14 年前

    afaik的Leopard已经通过一些技巧支持64位应用程序。