应用程序在32位Linux机器上可以使用多少内存?

时间:2012-11-01 17:47:49

标签: java linux memory operating-system ram

我是Linux新手,对内存限制有疑问。

据我所知,在Windows中,32位版本的操作系统只能使用2.8 GB,但Linux的情况是4 GB还是更低?

我对RHEL5中运行的Java应用程序特别感兴趣。 但是,如果你对其他技术有所了解 - 听听会很棒。

2 个答案:

答案 0 :(得分:3)

最多可能是3G字节(但是一些奇怪的内核配置选项可能会提高,可能达到3.3GB)

您可以使用setrlimit(2)系统调用降低可用内存限制(可能通过内置ulimit bash)

如果你有一个超过4G字节RAM的大铁,安装一个64位分配应该是有意义的。

您也许可以考虑使用例如compiling your Java application ahead of timegcj,但该编译器不合时宜,仅支持旧的Java标准;而且我不确定你是否会赢得一些内存空间(可能是几兆字节,因为它的运行时间远小于你的JVM)。

答案 1 :(得分:3)

RHEL5 32位分别为用户进程和内核提供3G / 1G分割。

这意味着单个进程最多只能访问3G地址空间。系统本身可以拥有超过4G的RAM,如果你使用的是PAE内核,所有这些内容都可供内核使用。内核将能够在不同的用户进程之间正确地分配内存。