Java 当堆大小空闲百分比高于50%时,它是否有助于增加JVM堆大小?

Java 当堆大小空闲百分比高于50%时,它是否有助于增加JVM堆大小?,java,jvm,weblogic,Java,Jvm,Weblogic,我有一个运行在MS Windows Server 2008上的J2EE web应用程序。应用服务器是Oracle WebLogic 11G。服务器有32GB的ram,但用户仍不断抱怨应用程序速度太慢 因此,我检查了JVM配置,发现分配的堆大小只有1GB,而服务器实际上有32GB的ram 然后我检查JVM堆大小空闲百分比,发现即使在服务器最忙的时候,仍然有50%的堆空闲 因此,我想知道如果我将堆大小增加到2GB或4GB是否有帮助 正如我读过的一些文章所述,当为JVM分配太多堆大小时,执行垃圾收集将

我有一个运行在MS Windows Server 2008上的J2EE web应用程序。应用服务器是Oracle WebLogic 11G。服务器有32GB的ram,但用户仍不断抱怨应用程序速度太慢

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

然后我检查JVM堆大小空闲百分比,发现即使在服务器最忙的时候,仍然有50%的堆空闲

因此,我想知道如果我将堆大小增加到2GB或4GB是否有帮助


正如我读过的一些文章所述,当为JVM分配太多堆大小时,执行垃圾收集将花费很长时间。

您可以将堆内存增加到物理内存的75%左右。但解决“慢问题”的几率太低。问题不在那里,您应该分析最常用功能的持续时间,并查看其持续时间比用户预期的时间长的地方。

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

  • 使用web浏览器工具查看web性能等是否存在问题
  • 使用探查器识别代码中的执行热点
  • 使用系统级工具找出瓶颈所在;e、 前端与后端、网络流量、磁盘I/O。。。交换/抖动效果
  • 检查系统日志文件和应用程序日志文件以获取线索
  • 打开JVMGC日志记录,查看GC和“迟缓”请求之间是否存在关联
然后你解决原因

仅仅基于直觉随机地修改heap/GC参数是不可能的


FWIW:我认为增加堆大小不太可能改善情况。

可能重复:我知道如何配置JVM以分配更多堆大小。但是我想知道,如果当前空闲百分比已经超过50%,那么分配更多堆大小是否对应用程序有利。