java.lang.OutOfMemoryError:服务执行一周后超出了GC开销限制

时间:2014-04-11 14:56:06

标签: java

我们为java应用程序配置了新服务器,并部署了一个在java上运行的应用程序。一周后我们收到错误 java.lang.OutOfMemoryError:超出GC开销限制,我们重新开始服务,并且在我们再次收到相同错误一周之后它再次正常工作。

此服务在另一台服务器中运行较早,该服务器的配置少于新服务器。

我们从未在旧服务器中遇到此错误。

此服务使用随软件提供的jre运行。

"%JAVA_HOME%\ BIN \的java" -server -Xms256M -Xmx256M,

增加Xms和XmX的值是否会解决GC Overhead限制问题。

1 个答案:

答案 0 :(得分:3)

要回答您问题中的实际问题,是的,增加这些值将暂时解决GC Overhead问题。但是,不是每周看一次神秘错误,而是每月一次或每隔一个月看一次。

这种类型的行为令人难以置信地表明java中存在内存泄漏。 "但我认为你在java中没有内存泄漏?"错误。在java中创建c / c ++类型内存泄漏有点困难,但它肯定可能在java中复制行为和相同的不幸影响。见Creating a memory leak with Java 有关这方面的更多信息。

我强烈建议重新评估该程序中导致GC开销限制的情况,并在那里解决。