1. ホーム
  2. java

[解決済み] JVM ARGS '-Xms1024m -Xmx2048m' はJava 8でも有効ですか?

2022-02-15 13:28:23

質問

JVM ARGSを使用したJava 7アプリケーションがあります。 -Xms1024m -Xmx2048m で、かなりうまく動いています。

Java 8にアップグレードしたら、Exceptionでエラー状態で動作するようになりました。

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戦略/メモリ管理の違いが根本的な原因かもしれませんね。何か提案はありますか?

解決方法は?

PermGenの削除に伴い、いくつかのオプションが削除されました(たとえば -XX:MaxPermSize ) が、オプション -Xms-Xmx は、Java 8 で動作します。Java 8では、アプリケーションが単に多少多くのメモリを必要としている可能性があります。を増やしてみてください。 -Xmx の値で指定します。あるいは、G1 ガベージコレクタに切り替えるために -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)