当堆大小可用百分比超过50%时,它是否有助于增加JVM堆大小?

时间:2017-12-14 07:00:19

标签: java jvm weblogic

我有一个在MS Windows Server 2008上运行的J2EE Web应用程序。应用程序服务器是Oracle WebLogic 11G。服务器有32GB内存,但用户仍然抱怨应用程序非常慢。

所以我检查JVM配置,发现分配的堆大小只有1 GB,而服务器实际上有32GB ram。

然后我检查JVM堆大小可用百分比并发现即使服务器最繁忙,仍有50%的堆可用。

所以我想知道如果我将堆大小增加到2GB或4GB是否有帮助。

我已经阅读了一些文章,当为JVM分配过多的堆大小时,执行垃圾收集需要很长时间。

2 个答案:

答案 0 :(得分:1)

使应用程序更快的正确方法是使用各种工具和其他可用信息源来找出速度慢的原因。例如:

  • 使用网络浏览器工具查看网络效果是否存在问题等。
  • 使用分析器识别代码中的执行热点
  • 使用系统级工具找出瓶颈所在;例如前端与后端,网络流量,磁盘I / O ......交换/颠簸效应。
  • 检查系统日志文件和应用程序日志文件以获取线索。
  • 启用JVM GC日志记录,查看GC与“缓慢”请求之间是否存在关联。

然后你解决原因。

根据肠道感觉随机摆弄堆/ GC参数不太可行。

FWIW:我希望增加堆大小不太可能改善。

答案 1 :(得分:0)

你可以将你的堆内存增加到物理内存的75%左右。但是这有可能解决“慢速问题”。它太低了。问题不在那里,你应该分析大多数使用过的函数的持续时间,看看它的持续时间比用户预期的要长。