JVM ARGS '-Xms1024m -Xmx2048m' 在 Java 8 中仍然有用吗?

2022-09-01 13:16:18

我有一个使用JVM ARGS:的Java 7应用程序,它运行得很好。-Xms1024m -Xmx2048m

升级到 Java 8 后,它以错误状态运行,但出现异常:

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
    at org.hibernate.engine.StatefulPersistenceContext.addEntry(StatefulPersistenceContext.java:466)
    at org.hibernate.engine.TwoPhaseLoad.postHydrate(TwoPhaseLoad.java:80)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1439)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
    at org.hibernate.loader.Loader.getRow(Loader.java:1230)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
    at org.hibernate.loader.Loader.doQuery(Loader.java:724)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2228)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
    at org.hibernate.loader.Loader.list(Loader.java:2120)
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1596)
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)

我想知道JVM ARGS是否仍在工作?-Xms1024m -Xmx2048m

由于Java 8已经删除了Perm Generation:http://www.infoq.com/articles/Java-PERMGEN-Removed,我认为Java 7和Java 8之间不同的GC策略/内存管理可能是根本原因。有什么建议吗?


答案 1

由于PermGen的删除,一些选项被删除了(如),但选项和工作在Java 8中。在 Java 8 下,您的应用程序可能只需要更多的内存。尝试增加价值。或者,您可以尝试使用 切换到 G1 垃圾回收器。-XX:MaxPermSize-Xms-Xmx-Xmx-XX:+UseG1GC

请注意,如果使用在 Java 8 中除去的任何选项,您将在应用程序启动时看到一条警告:

$ java -XX:MaxPermSize=128M -version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

答案 2

我所知道的是,当经过几次GC周期后释放2%的内存时,当“超过GC开销限制”错误时,会引发“超过GC开销限制”错误的一个原因

通过此错误,您的JVM发出信号,表明您的应用程序在垃圾回收上花费了太多时间。因此,能够清洁的少量GC将再次快速填充,从而迫使GC再次重新启动清洁过程。

您应该尝试更改 和 的值。-Xmx-Xms


推荐