0
votes

My Java EE server has been working nicely, and then inside 10 mins full gc started to occur more frequently, then finally it was stopped all the time due to GC. PSPermGen was not released.

My JVM settings are:

set JAVA_OPTS=%JAVA_OPTS% -Xms4g -Xmx4g -XX:MaxPermSize=512m -XX:NewRatio=3

2012-09-05T14:03:10.394+0100: 94287.753: [Full GC [PSYoungGen: 843584K->0K(947200K)] [ParOldGen: 3077347K->3117145K(3145728K)] 3920931K->3117145K(4092928K) [PSPermGen: 181533K->181521K(186944K)], 10.9564398 secs] [Times: user=286.14 sys=0.19, real=10.97 secs] Total time for which application threads were stopped: 10.9678339 seconds Application time: 0.0023102 seconds Total time for which application threads were stopped: 0.0088344 seconds Application time: 0.3052301 seconds Total time for which application threads were stopped: 0.0085634 seconds Application time: 0.1125068 seconds 2012-09-05T14:03:21.798+0100: 94299.158: [Full GC [PSYoungGen: 842024K->22409K(947200K)] [ParOldGen: 3117145K->3145232K(3145728K)] 3959170K->3167641K(4092928K) [PSPermGen: 181521K->181521K(186752K)], 11.4649901 secs] [Times: user=372.58 sys=0.11, real=11.47 secs] Total time for which application threads were stopped: 11.4757898 seconds Application time: 0.0706553 seconds Total time for which application threads were stopped: 0.0102510 seconds Application time: 0.3951514 seconds 2012-09-05T14:03:33.748+0100: 94311.110: [Full GC [PSYoungGen: 843584K->34503K(947200K)] [ParOldGen: 3145232K->3141687K(3145728K)] 3988816K->3176190K(4092928K) [PSPermGen: 181521K->181521K(186112K)], 10.9699419 secs] [Times: user=369.43 sys=0.14, real=10.97 secs] Total time for which application threads were stopped: 10.9806713 seconds Application time: 0.0027075 seconds

Any clue what could be reason? Memory leak or JVM can be tweaked better?

1

1 Answers

0
votes

Well from the log, few things are clear. Either that the system genuinely needs too much memory that it is unable to clear the tenured generation resulting in 3.1GB consistent consumption. This part only you can answer. Or there is a memory leak. Memory Leak might/not be possible because the ole gen used space is constant at around 3.145GB. With memory leak usually even this increases. Probably more log can help. If this factor increases with time, then rest assured - a leak. If constant, then the application is genuinely short of memory needed.