Old generation doesn't get freed even after multiple System.gc()
Srinivas Ramakrishna
ysr1729 at gmail.com
Wed Oct 31 23:40:52 UTC 2012
don't know what made you believe "System.gc() doesn't trigger old" -- what
collector are you
using and what makes you believe that's the case? Any representative GC
logs to illustrate
what you are describing below? Also any details on the JVM/JDK version you
are seeing this with?
-- ramki
On Wed, Oct 31, 2012 at 3:20 AM, Ashish Saxena <anantiitrke at gmail.com>wrote:
> Hi Team,
>
> We are observing that even after multiple full GC, JVM doesn't clear
> the Old generation. Full GC do occur (as seem from GC logs), but it
> performs Young generation collection followed by promotion into old
> generation but the old generation collection doesn't happen.
>
> Test:
> When Heap size is low (1 GB), after multiple full GC, total heap size
> after GC is around 400 MB.
> But with Heap size is high(8 GB), after multiple full GC, total heap
> size after GC is around 1300 MB. GC logs confirms that old generation
> is not getting collected.
>
> It seems that on receiving request for full GC,
> 1. JVM triggers young generation GC
> 2. Checks the occupancy of old generation, and triggers Old generation
> GC only if there is memory pressure.
>
> Is there a way by which we can instruct JVM to trigger Old generation
> collection each time full GC is triggered ? This is required to
> measure actual memory usage (without garbage) of the application.
>
> Thanks and Regards,
> Ashish A. Saxena
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20121031/93559c60/attachment.htm>
More information about the hotspot-gc-dev
mailing list