I suspect that my application have a memory leak. I have GC logs and when I look at them I see that memory usage is about 9-10GB. Then I try to dump memory to the file, the file size is about 5GB.
The question is why dump has not got 9GB in size, but only 5GB? How can I force jrcmd to dump full memory?
Command that I use:
jrcmd 11906 hprofdump filename=/path_to_dump/dump.hprof
JVM:
Java(TM) Platform, Standard Edition for Business (build 1.5.0_28-b04)
Oracle JRockit(R) (build R28.1.3-11-141760-1.5.0_28-20110301-1432-linux-x86_64, compiled mode)
Update:
The problem is that due to GC logs memory is never freed up to level that is below 9GB. JDK tool truncated dump to 5GB. Why?
I assume JRockit behaves similar to HotSpot: if your live data set is only 5 GB then the dump also only 5 GB. I assume only 5 GB of your 9-10 are live.