我有一些旧的超微服务器,其中有超过 16GB 的 RAM,仍然运行着 32 位版本的 Linux,内核是 2.6.x,并在其上运行着 vmware。
我想知道将发行版/内核升级到 64 位 Debian 是否有任何好处。
唯一的问题是,现在我无法在 vmware 中创建 64 位客户虚拟机。
我还想知道将此系统升级到 64 位是否有任何性能优势,或者更合适的问题是它是否有任何缺点?
是的,这确实是 VS 的问题,我想要 64 位客户机的唯一原因是 btrfs,没有别的原因。我实际上没有数据库、memcache 或其他可以利用 64 位的虚拟机,而且没有一个虚拟机的内存超过 4 GB。我认为最多有 2GB 左右。
“32 位仅适用于 4GB 或更少的 RAM 空间”,因此我的许多客户机都可以作为 32 位客户机使用,但我的主机操作系统具有 24GB RAM 并运行 32 位内核,它使用一些 PAE 技巧来访问超过 4GB 的内存。
那么让我这样说吧。如果我的主要目标是拥有更快(或至少不更慢)的虚拟机,那么主机操作系统为 64 位是否有优势?它访问 4GB 以上内存区域的速度会比现在更快吗?
答案1
如果您在 2014 年在没有 64 位功能的现代硬件上安装任何操作系统,那么您就做出了错误的设计决策。
即使您描述的 VMware Workstation 设置中的硬件 RAM/CPU 占用空间,使用 64 位版本的操作系统也是有意义的,以实现向前兼容性、面向未来性以及要求很明确您拥有 BtrFS 64 位库。
答案2
64 位比 32 位速度慢并且占用更多 RAM。
64 位地址大于 4GB RAM 的寻址速度比 32 位更快(也更流畅)。单个程序可以在 64 位系统上本地寻址更多 RAM。如您所知,您无法在 32 位系统上运行 64 位客户机。
针对您的评论进行了更新,如下所示:
我上面的回答是给出“vs”答案,因为你有一个“vs”问题。但不要忘记 32 位仅限于 4GB RAM。当你的内存少于 4GB 时,这是没问题的(bios 和内存映射设备会占用 4GB 地址空间的一部分)。
但是,如果您的 RAM 超过 4GB,那么 32 位系统就必须采用“分页”技巧来处理额外的 RAM。您的底层系统拥有超过 4GB 的 RAM,因此它通常会运行得更快。
64 位比 32 位慢(且更大),因为所有指针都更大,占用的内存空间是较小指针的两倍,因此 32 位指针更快。
但是,当您通过分页处理整个 RAM 时,您可能会发现 64 位在这种情况下速度更快。
无论是程序还是操作系统,32位仅适用于4GB或更少的RAM空间。
除非您具有明显优势或者需要您的客人使用 64 位,否则不要升级您的客人。
我从反对票中看到,反对我上述言论的人比同意的人多。我刚好在一个网站上研究一个不相关的主题(Linux CC 和 ITSEC 认证),并注意到了关于这个主题的这段有趣的文字:
几年前,我们曾运行过 32 位和 64 位 Linux 基准测试。虽然结果很少改变,但我们一直在运行它们,因为在 32 位和 64 位 Linux 发行版映像之间进行选择的问题仍然是一个常见问题……这些测试带来了令人惊讶的流量,而我仍然对仍有这么多人问这个问题感到震惊,因为几乎所有现代 x86 Intel/AMD 硬件都完全支持 x86_64,这通常意味着更好的性能。通常不使用 64 位 Linux 映像的唯一注意事项是运行的系统 RAM 小于 2GB。 (斜体添加 - 参见来源文章)
看来我不是唯一一个在实际工作中发现 64 位不是总是答案。