2

BEA 建议保持最小和最大堆大小相同。他们没有详细说明提出建议的原因。有人可以提供详细信息吗?

我还从架构师那里得到了另一个建议,即不设置任何最小值而只设置最大值。对此有何评论?如果我不使用它,默认值是什么?

什么是监控和调整 JVM 设置的最佳工具。我在 BEA weblogic 10g 上使用 JDK1.6。它在 Linux 32 位 JVM 上。

最大堆大小设置为 2GB 有什么好处吗?服务器有很多内存。目前设置为 1.5GB,当有 40 个并发用户时使用率为 80%。谢谢,

4

1 回答 1

1

当 JVM 需要增加堆的大小时,它会调用完整的垃圾回收,这可能会降低吞吐量或导致暂停,所以我认为出于性能原因,他们建议这样做。

默认值记录为 2MB,因此如果您不覆盖它,您可能会在启动后获得很多(可能非常快)完整集合,因为堆经常调整大小。

除非您试图使内存占用尽可能小,否则我会遵循 BEA 的建议。

不可能从给出的信息中说 2GB 是否合适,或者是否正在使用其中的空间的对象仍在范围内 - 老一代将逐渐填满,直到在调用完整集合时空间用完。这 80% 的数字是从哪里来的?

使用以下 JVM 参数将 GC 详细信息记录到名为 gc.log 的文件中:

-verbose:gc -XX:+PrintGCDetails -Xloggc:gc.log 

然后您可以使用http://www.tagtraum.com/gcviewer.html之类的内容进行分析

于 2012-01-11T10:13:30.243 回答