我有一个 Debian 服务器 VPS,提供商安装了 64 位 Debian 5。考虑到我只有 750 MB RAM 并且听说变量在 64 位系统上需要更多 RAM,我是否应该要求安装 32 位?
答案1
简短的回答:
与 32 位软件相比,变量在 64 位软件中占用的空间不会增加一倍。切换到 32 位操作系统所带来的潜在内存增益并不值得付出努力。
长答案:
数字可以更大,是的,但这并不意味着它们会更大。这也适用于数字,而不是字符串,而字符串(通常)是应用程序中消耗最多内存的内容。
此外,许多应用程序明确指定它们想要使用的数字的大小,就像在 C 等语言中一样,int
可以是任何大小,包括小于 32 位的大小。更进一步,在我的 64 位 Linux 机器上,C 语言int
是 32 位的。因此,您必须明确请求long long
获取 64 位数字。
因此基本上,应用程序不会仅仅因为它们是针对 64 位编译的而使用更多内存。
编辑:
为了回应 Gilles 声称 64 位 Firefox 使用两倍内存的说法,我在我的系统上对 32 位和 64 位 Firefox 进行了比较。
我通过启动 5 个打开的选项卡进行测试http://acid3.acidtests.org/并进行了3次测试(一次32位,一次64位,然后重复两次)。我选择这个网站是因为它是 JavaScript 密集型的,并且使用静态内容(页面的每次呈现都将提供相同的数据)。
在最后的运行中:
32 位:173,244kb rss / 918,348kb virt
64 位:184,588kb rss / 966,624kb virt
是的,我可以做更广泛的测试,但我认为这足以证明两者之间的尺寸差异是微乎其微的。
答案2
对于内存小于 4GB 的系统,我选择 32 位而不是 64 位安装。
64 位确实使用更多内存,由于其指针的性质,对于普通 LAMP 安装而言,内存范围大约为 10 到 50 兆字节。
在内存有限的系统上,例如 256meg,这可能是一个相当大的块。
从技术上讲,对于 PAE,同样适用于高达 64gig,但应用程序的可寻址空间在任何情况下仍然限制为 4gig。因此,对于超过 4gig 的任何设备,建议使用 64 位来利用性能增益,尤其是与 PAE 开销相关的性能增益。
简而言之:<4gig = 32bit | >4g = 64 位。
答案3
如果提供商安装了 64 位 Debian 5,我建议您保留此版本。
64位和32位之间的区别不仅仅在于内存管理器。
答案4
除了一些运行速度更快的数字运算应用程序外,64 位系统的唯一好处是可以寻址超过 4GB 的内存。由于部分地址空间保留给内核,因此进程只能获得大约 2GB 或 3GB 的地址空间(或多或少,具体取决于内核配置)。对于数据库和 Web 服务器用例,您不打算进行太多交换,也不打算进行太多数字运算。因此,只有 750MB RAM,您不会看到使用 64 位系统的任何好处。
i386(32 位)和 amd64(64 位)代码之间的代码大小大致相同。 64位程序使用的数据内存稍大;多大取决于应用程序。我希望看到您的用例有明显但不是很大的差异。
鉴于使用64位的成本有点小,而且没有任何好处,如果获取起来不太麻烦的话,我建议你使用32位系统。