【发布时间】:2012-05-17 17:59:34
【问题描述】:
我们有一个运行 32 位 JVM 的 64 位 Linux 服务器。由于各种内部原因,我们不想升级到 64 位 JVM。假设我的操作系统可以使用超过 32 位程序可以使用的方式,那么最大的 -xmx 值是多少?
究竟是 4096 还是有一些填充物必须更低?
【问题讨论】:
我们有一个运行 32 位 JVM 的 64 位 Linux 服务器。由于各种内部原因,我们不想升级到 64 位 JVM。假设我的操作系统可以使用超过 32 位程序可以使用的方式,那么最大的 -xmx 值是多少?
究竟是 4096 还是有一些填充物必须更低?
【问题讨论】:
3788.8 MB 是 64 位 Linux 上 32 位 JVM 的最大堆大小。 来源:http://pauldone.blogspot.com/2008/08/is-jvms-maximum-heap-size-really-17-gb.html (对于较旧的 Java,Java 6 实际上可能或多或少)
【讨论】:
For a 32 bit process on a 64 bit kernel (a common case on ppc64 or x86_64) the limit will usually be (4GB - one page).。当内核有 TB 的可用空间时,我看不出为什么内核需要从进程地址空间中保留 1gb 的虚拟内存。
jmap -heap 或使用 jconsole/jvisualvm 来监控最佳大小。还有