|Analyzing metaspace memory OOME [message #1772377]
||Fri, 08 September 2017 13:04
| Gerrit Schulz
Registered: September 2017
We recently had a problem with frequent metaspace OOMEs and found out, it happened due to JaxbAccessor-classes getting generated repeately on webservice calls. We managed to do so with the help of the Java VisualVM and a heap dump of the affected application. After loading the heap dump within the Java VisualVM, we went to the "Classes" view, sorted the list by class name and found certain classes being listed 100+ times.|
After we got rid of that specific issue, we now would like to figure out, if we possibly have any further, more subtle problems left, that still might lead to metaspace OOMEs in the long run. To do so, we would like to compare the list of classes held within the metaspace of two heamp dumps made with a certain temporal distance, so we would see, what classes have been added to the metaspace over time.
Unfortunately, the Java VisualVM does not seem to provide any mechanism to export the list of classes obtained as described above, so that we can't use it for comparison's sake.
The eclipse MAT on the contrary seems to let us export every list of classes, we obtain from it, so we could easily compare two of those exported lists, but we didn't find a way of getting a list of all the classes held within the metaspace as we got it with the help of the Java VisualVM.
We tried the Histogram view as well as the Duplicate Classes view, but the former lists the dupliacted JaxbAccessor-classes mentioned above only once (no matter, if we group by class or package) and the latter doesn't list those classes at all.
Is there any way to achieve, what we want, with the help of the eclipse MAT? Or are there possibly even better ways of figuring out the classes that have been added to the metaspace?
Powered by FUDForum
. Page generated in 0.02044 seconds