What is the "Dark matter: xxxxxxx bytes" reading in the jrcmd command output?
This indicates unusable heap due to fragmentation.
This value is not expected to be very high, but still this needs to be added to the used memory.
If this "Dark Matter" value is very high in your environment, then it is an indication that you have to tune your JVM.
Even after adding "Dark Matter" if you still find a huge gap, then it is interesting.