JVM内存使用量不断增加

时间:2016-04-30 02:48:47

标签: java heap-memory jvm-crash

我们有一个Java应用程序,jdk是7up75 ... Xms设置为1 GB,Xmx为3 GB。我们使用JConsole来监视JVM,我们发现JVM的使用率在不断增加......我们启用GC和GCInterval是30分钟。在周末,1-2个用户使用应用程序,但是当我们在星期一检查JVM使用情况时早上,我们可以看到几乎相同或更高的JVM使用率,而不是周五晚上。目前我们每1周就会遇到内存不足的问题。仅在上个月开始面对此问题。同样的系统在过去的两年里工作正常,没有任何问题。现在DB几乎翻了一倍...... 任何人都可以提出任何暗示或建议。谢谢。

1 个答案:

答案 0 :(得分:1)

正如评论所说,这听起来像是内存泄漏的典型症状。在您花时间寻找其他可能的原因(没有任何特定原因的证据)之前,建议您使用内存分析器来查看内存泄漏理论是否有效。

  

..我想知道内存泄漏是否是问题,为什么系统运行了两年没有任何堆错误。

这并不意味着它不是内存泄漏。

我们唯一可以肯定地说,某事已经改变了。这可能是很多事情:

  • 更改软件或库,
  • 更改JVM,
  • 更改系统中的信息量(例如内存中信息),
  • 更改您/您的用户使用系统的方式
  • 我没有想过的其他事情。
  

目前APP和DB服务器都在同一台机器上... 8GB RAM和4核心cpu ..如果我们将DB分成另一台服务器怎么办?

这不会改变JVM的内存使用情况。它可能允许您运行具有更大堆的JVM,但如果问题是(我们怀疑)您有内存泄漏,那么增加堆大小就像在受感染的伤口上放置一个绑带。它并没有解决真正的问题。病人还在死。