下面是我的JVM設置:
JAVA_OPTS=-server -Xms2G -Xmx2G -XX:MaxPermSize=512M -Dsun.rmi.dgc.client.gcInterval=1200000 -Dsun.rmi.dgc.server.gcInterval=1200000 -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:+UseCompressedOops -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jbos88,server=y,suspend=n
問題: 總堆內存:2GB 老根:1.4GB(2/3的堆) 新一代:600MB(堆的1/3)
舊的內存增長超過70%的內存分配的大小和永遠不會受到甚至在100%即1.4GB的GC。 可以看到它下面的圖表,它從不是GC,內存的下降是從JConsole強制GC時發生的。 這個問題最終導致Web服務器關閉。
任何我錯過或錯誤設置JVM?
感謝您的幫助提前。
更新我的問題:
後堆分析看起來像有狀態會話bean是最大的嫌疑人: 我們必須持有由Hibernate協助持久性邏輯狀態會話bean。
你看到'OutOfMemoryError堆空間'的JVM終止嗎?或者你期待舊的GC能夠更早運行? – 2014-09-18 23:05:49