【发布时间】:2016-07-26 01:28:50
【问题描述】:
我将JDK1.6.0_16 JVM 用于托管在Linux Intel procesor 80 cores machine 上的Java 应用程序。
在启动 Java 应用程序时,我只配置了两个选项
-Xms2048m -Xmx8000m 在 JVM 选项中(在 java 命令之后)。
我看到 PS Old Gen 计算为5.21G,PS Eden 计算为2.6G,但 PS Survivor 空间为25MB。
我在生产中使用完全相同的 JVM,并且 PS Survivor Space 大小显示为 888MB。我在 java 任务控制内存选项卡中看到这些大小。
缓存大小(/proc/cpuinfo 的输出)在 UAT 和生产框中均显示为 24656。
不要认为这对 JVM 有任何影响,但仍然提到在启动 JVM 时机器上的负载非常低。
能否请您告知 JVM 考虑哪些参数来计算 PS Survivor Space 大小?
【问题讨论】:
-
还有一件事。这台机器有 256G 的物理内存,其中大约 200G 是空闲的(包括缓冲区和缓存,不包括交换)
-
在设置 -XX:SurvivorRatio=1 后(设置其他值如 8、6、5 后),PS Survivor Space 大小刚刚增加到 220 MB。将值设置为 8 没有任何效果,然后设置为 6 仅更改边距。
标签: garbage-collection jvm heap-memory jvm-arguments parallel-collections