我的 Java EE 服务器一直运行良好,然后在 10 分钟内完全 gc 开始更频繁地发生,最后由于 GC 一直停止。PSPermGen 没有发布。
我的JVM设置是:
设置 JAVA_OPTS=%JAVA_OPTS% -Xms4g -Xmx4g -XX:MaxPermSize=512m -XX:NewRatio=3
2012-09-05T14:03:10.394+0100:94287.753:[FULL GC [PSYUNGGEN:843584K--> 0K> 0K(947200K)] -> 181521K(186944K)], 10.9564398 秒] [时间: user=286.14 sys=0.19, real=10.97 secs] 应用程序线程停止的总时间: 10.9678339 秒应用程序时间: 0.0023102 秒应用程序线程停止的总时间:0.0088344 秒应用程序时间:0.3052301 秒应用程序线程停止的总时间:0.0085634 秒应用程序时间:0.1125068 秒 2012-09-05T14:03:21.798+0100:94299.158:[Full GC [PSYoungGen:842024K->0K240K(947202) )] [ParOldGen: 3117145K->3145232K(3145728K)] 3959170K->3167641K(4092928K) [PSPermGen: 181521K->181521K(186752K)], 11.4649901 秒] [时间:user=372.58 sys=0.11, real=11.47 secs] 应用程序线程停止的总时间:11.4757898 秒应用程序时间:0.0706553 秒应用程序线程停止的总时间:0.0102510 秒应用程序时间:0.3951514 秒 2012-09-05T14: 03:33.748+0100:94311.110:[完整GC [Psyounggen:843584K--> 34503K(947200K)] ],10.9699419 secs] [Times: user=369.43 sys=0.14, real=10.97 secs] 应用程序线程停止的总时间:10.9806713 秒应用程序时间:0.0027075 秒0706553 秒应用程序线程停止的总时间:0.0102510 秒应用程序时间:0.3951514 秒 2012-09-05T14:03:33.748+0100:94311.110:[Full GC [PSYoungGen:843584K->34503K(947200K)][ParKOldGen: ->3141687K(3145728K)] 3988816K->3176190K(4092928K) [PSPermGen: 181521K->181521K(186112K)], 10.9699419 secs] [Times: user=369.43 sys=0.14, real=10.9 应用程序线程的总时间已停止:10.9806713 秒应用时间:0.0027075 秒0706553 秒应用程序线程停止的总时间:0.0102510 秒应用程序时间:0.3951514 秒 2012-09-05T14:03:33.748+0100:94311.110:[Full GC [PSYoungGen:843584K->34503K(947200K)][ParKOldGen: ->3141687K(3145728K)] 3988816K->3176190K(4092928K) [PSPermGen: 181521K->181521K(186112K)], 10.9699419 secs] [Times: user=369.43 sys=0.14, real=10.9 应用程序线程的总时间已停止:10.9806713 秒应用时间:0.0027075 秒97秒]应用程序线程停止的总时间:10.9806713秒应用程序时间:0.0027075秒97秒]应用程序线程停止的总时间:10.9806713秒应用程序时间:0.0027075秒
任何线索可能是什么原因?内存泄漏或 JVM 可以更好地调整吗?