1

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

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

我对在 RHEL5 中运行的 Java 应用程序特别感兴趣。但是,如果您对其他技术有答案 - 那将是很棒的聆听。

4

2 回答 2

3

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

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

于 2012-11-01T18:02:26.330 回答
3

它最多可能是 3Gbytes(但一些奇怪的内核配置选项可能会提高它,也许是 3.3Gbytes)

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

如果你有一个内存超过 4GB 的大熨斗,安装 64 位发行版应该是有意义的。

您可能还考虑使用例如gcj提前编译您的 Java 应用程序,但是该编译器已经过时并且只支持旧的 Java 标准;而且我不确定你会赢得一些内存空间(可能是几兆字节,因为它的运行时间比你的 JVM 小得多)。

于 2012-11-01T17:50:16.187 回答