I am using jdk64 and my java version is "1.6.0_24". My tomcat is running with -Xmx7196m, and jvisualvm is running with -J-Xms2048m -J-Xmx3072m.
I took a heap dump of my tomcat java process and size of my .hprof
file is around 5.5 GB. When I try to open this heap dump, it just stuck on Loading Heap Dump...
screen.
I also looked at the heap consumption of VisualVM while it is trying to open the heap dump, but that goes around 500MB only.
NOTE: I did look at jvisualvm: Stuck on “Loading Heap Dump” screen question but it is different and does not address my question.
These symptoms also occured when I tried to load a large heap dump and had low disk space ( I assume for temporary file use by visual vm), running on a Mac. After I freed up diskspace the file loaded.
You can try several things:
- Java VisualVM in bundled with JDK 1.6.0_24 is several years old. Try to use latest version (1.3.7) from http://visualvm.java.net.
- VisualVM uses memory-mapped files so you don't need to start it 3G heap. I would start with 1G heap. How much free memory does have your OS when you try to open the heap dump?
- There should be progress bar in the right corner of VisualVM, which will show you the progress of loading of the heap. This should give you a clue how long it can take.
I hit a similar snag but realized that there was an exception; it can be hard to spot:
I don't know whether it will always displays an error like that (I'm using v1.3.9).
I also noticed if jvisualvm
doesn't have permission to read the file, then there is no feedback indicating the problem. (Java 7)
If the opened file is not considered a valid heap dump, the JvisualVM will also be stuck on this screen.
Opening the same (invalid) file on MAT (from Eclipse), the error happens:
Error opening heap dump 'heap.hprof'. Check the error log for further details.
Not a HPROF heap dump (java.io.IOException)
Not a HPROF heap dump