BEA建议保持最小和最大堆大小相同。他们没有详细说明这个建议的原因。有人可以提供详情吗?
我还得到了建筑师的另一个建议,即没有设置任何最小值,只需设置最大值。对此有何评论?如果我不使用它,那将是什么默认值?
监视和调整JVM设置的最佳工具是什么。我在BEA weblogic 10g上使用JDK1.6。它位于Linux 32位JVM上。
最大堆大小设置为2GB有什么用?服务器有很多RAM。目前设置为1.5GB,当有40个并发用户时,它的使用率为80%。 谢谢,
答案 0 :(得分:1)
当JVM需要增加堆的大小时,它将调用完整的垃圾收集,这可能会降低吞吐量或导致暂停,所以我认为这是出于性能原因而推荐的。
默认值为documented为2MB所以如果你不覆盖它,你可能会在启动后获得很多(可能非常快)的完整集合,因为经常调整堆的大小。
除非你试图尽量减少内存占用,否则我会遵循BEA的建议。
无法从给出的信息中说出2GB是否合适,或者如果其中占用空间的对象仍然在范围内 - 旧的一代将逐渐填满,直到空间用完时完整的收集将被调用。 80%的数字来自哪里?
使用以下JVM参数将GC详细信息记录到名为gc.log的文件中:
-verbose:gc -XX:+PrintGCDetails -Xloggc:gc.log
之类的内容进行分析