I have an application that I suspect has a memory leak in permgen (based on Permgen OOM condition and viewing the Permgen heap graph over time). I'm wondering if there's a way using Dynatrace's memory trending snapshot or even the deep memory analysis to find out if a specific objects in the report is in Permgen. Or, is there a way to view all the objects that are currently in permgen?
We have a great Memory Diagnostics Feature in dynatrace - check out my latest blog post which is a How-To Guide: http://apmblog.compuware.com/2014/10/28/hands-tutorial-5-steps-identify-java-net-memory-leaks/
I will double check with engineering - but - afaik - there is no option to know which objects are in which heap. However - if you want to find leaking objects (regardless of the heap) our memdump feature is perfect for that
We see a similar issue in one of our application. We first noticed increase in loaded classes over time and similar pattern for Perm Gen used.
We dint let the Perm Gen go OOM and stopped the test.
We also saw response increase and is mainly due to suspension(GC) and sync time. Thread analysis showed too many threads waiting on single thread which is doing class loading.
I think perm gen is used to store class definitions, will DT mem dump include details of perm gen?
We also see high number of unloaded classes 1 hour into the test.
We are trying to find why this many class loading and unloading is happening.
Here is the time breakdown chart we created in Splunk with purepath data used for the analysis.
Here is the link to RFE for this feature in Dynatrace Re: RFE: Time breakdown chart similar to layer breakdown