Technical Blog Post
Native Memory Usage Hints From the NATIVEMEMINFO Section of a Javacore
Javacores are generally not useful by themselves to analyze memory problems. However, javacores are still useful for providing hints on where memory may be accumulating by reviewing the NATIVEMEMINFO section.
Using 2 or more javacores from the same process ID (PID), compare the NATIVEMEMINFO sections from during the time frame when memory growth is noticed. The following example shows the NATIVEMEMINFO section from 2 javacores when it was noticed by the system administrator that the process size (not to be confused with the java heap size size) was growing very large. The value of the "JRE" section is an indicator of the total java process size. Please note that these values are not exact, but they do provide a good indication of growth/shrinkage when comparing same PID javacores over time.
In this example, the JRE size growth is noticed, but from what component?... Further comparison shows that the "Classes" have grown 27,74,568 bytes (2.65MB) in just 4 minutes, thus indicating classloaders/classes should be further investigated as suspect:
Next Step (only if one of the memory sections shows growth over time):
Manually collect a system core dump when the memory usage is high and process it with jextract. Then use a tool like Memory Analyzer to parse the jextracted system core dump. Using the Memory Analyzer Tool is beyond the scope of this blog entry. Please see the help documentation provided with the Memory Analyzer Tool for further education in this area.