users@glassfish.java.net

Endless growing and shrinking heap

From: Ryan de Laplante <ryan_at_ijws.com>
Date: Thu, 06 Nov 2008 10:12:38 -0500

Hi,

I have attached a few screenshots that show some disturbing behavior.
I'm trying to investigate why our app server (SJSAS 9.1 UR2) ran out of
heap space twice, exactly two weeks apart. The first screenshot shows
that the used heap grows linearly until it hits the maximum, then is
garbage collected? The second screenshot shows Timer threads being
created and destroyed a few seconds later endlessly. That might
explain why the heap dump I took during the last "out of heap space"
error was only 122 MB when the max heap was set to 512 MB at the time.

The third screenshot shows that my application has many timers, but each
of them have a name. So, I know that the timers being created endlessly
are not my own timers.

I have changed the -Xmx setting in domain.xml and restarted:

        <jvm-options>-Xmx1024m</jvm-options>

There were two places that listed JVM options so I changed them both.
The graph in VisualVM shows the heap maxing out around 500 MB so it
looks like that option didn't take effect.

Presently the Windows 2003 Server task manager says the java.exe process
is using "589,148 K". I read that as 575 MB.


Thanks,
Ryan




heap.png
(image/png attachment: heap.png)

timer-threads.png
(image/png attachment: timer-threads.png)

ijwtimer-threads.png
(image/png attachment: ijwtimer-threads.png)