运行具有750 MB RAM的64位Linux:值得吗?


13

我有一个Debian服务器VPS,并且提供程序安装了64位Debian5。考虑到我只有750 MB的RAM并且听说过变量在64位系统上占用了更多的RAM,我是否应该要求32位安装?


2
实际上,这取决于您要运行的内容。尝试一些负载,然后检查您的RAM是否足够。
雷南

恶意运行:Postgres,Apache和Tomcat。
Jhonnytunes 2012年

1
注意:如果您决定以后再升级到更多RAM,则32位可能会出现问题(有PAE可以在4GB限制内进行撑杆跳高,但这本身就有一些开销)。
Piskvor在2012年

我已经在其虚拟机管理程序上使用了已安装的自定义内核的这两个VPS主机,因此您可能必须坚持使用它们的操作系统版本-如果它们不提供32位,我怀疑您是否可以自己安装。
拉普

Answers:


16

简短的答案

在64位和32位软件中,变量不会占用两倍的空间。从切换到32位OS可能获得的内存收益将不值得付出。

长答案

数字可以更大,是的,但这并不意味着会如此。这也适用于数字,而不是字符串,并且(通常)字符串是消耗应用程序中最大内存量的字符串。

此外,许多应用程序都明确指定了要使用的数字的大小,例如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

我可以进行更广泛的测试,但是我认为这足以说明两者之间的大小差异很小。


1
这被严重夸大了。某些程序在64位模式下确实占用几乎两倍的内存,这取决于它们处理的数据类型。我注意到Firefox和Chrome占用的内存甚至超过内存的两倍(我从未调查过原因:代码大小?)。对于Apache,额外的内存消耗可能很小(但是我没有测量)。
吉尔斯(Gilles)'所以

@吉尔斯几乎。我刚刚发布了32位和64位Firefox。启动后32位使用133,340kb。启动后64位使用133,412kb。
Patrick

最近,它可能有所改善,我想我上次使用Firefox4。我采用了一个闲置的系统(几乎只运行64位程序,该程序应该支持64位可执行文件,因为它的某些共享库已经被加载)来进行测量。并比较加载了几个选项卡(一些JS,没有Flash)后的可用内存量:我发现(free_memory_with_ff_64-free_memory_without_ff)> 2 *(free_memory_with_ff_32-free_memory_without_ff)。
吉尔(Gilles)'所以

4
@Gilles我认为测试中存在一些缺陷。即使firefox将每最后一点数据存储为整数(没有字符串,也不会改变大小),并且每个整数都从32位更改为64位,但大小最多也将翻倍。没有任何解释可以解释为两倍以上。
Patrick

2
“数字可能会更大,但这并不意味着会有所增加。” -但所有的指针现在肯定是64位,他们曾经是32
RUP

5

对于ram小于4gig的系统,我选择32位而不是64位安装。

由于其指针的性质,64位DOES使用更多的内存,对于普通的LAMP安装,此范围大约多出10到50兆字节。

在内存有限的系统(例如256兆)上,这可能是一个相当大的块。

从技术上讲,使用PAE时,同样适用于64gig,但是在任何情况下,应用程序的可寻址空间仍限于4gig。因此,对于超过4gig的任何东西,建议使用64位来提高性能,尤其是与PAE开销相关的性能。

简而言之:<4gig = 32bit | > 4gig = 64位。


3

如果提供程序安装了64位Debian 5,我建议您继续使用该版本。

64位和32位之间的区别不仅在内存管理器中。


2

除了一些运行速度更快的数字处理应用程序外,64位系统的唯一好处是您可以处理4GB以上的内存。由于某些地址空间是为内核保留的,因此一个进程只能获得大约2GB或3GB的地址空间(或多或少,取决于内核配置)。对于数据库和Web服务器用例,您不打算进行太多交换,也不打算进行太多的数字运算。因此,只有750MB的RAM,使用64位系统不会带来任何好处。

i386(32位)和amd64(64位)代码之间的代码大小大致相同。64位程序使用的数据存储器要大一些。多少取决于应用程序。我希望您的用例能看到明显的差异,但差异不大。

考虑到使用64位系统的成本很少,也没有任何好处,因此建议您使用32位系统,如果这样做不太麻烦。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.