I'm at a loss regarding the reported memory usage of my Java application (deployed on JBoss EAP) when under load. The java.exe
process memory as shown by Windows Resource Monitor is much higher than what is reported by jcmd VM.native_memory
.
How can I investigate the difference?
Example
- jcmd: Total: reserved=8417542KB, committed=7308422KB
- Windows Resource Monitor: Commit ("zugesichert") 12270304 KB
Environment
- Oracle JDK 11.0.18
- Heap size (Xmx) 6 GB [fully committed according to jcmd]
- G1 GC
- JBoss EAP 7.4.8
- Windows Server 2016
- The machine is a Hyper-V hosted VM with 8 GB RAM
Further observations
Memory usage as per Resource Monitor keeps growing continually while under load whereas the values reported by jcmd
seem to stabilize around 8.5 GB reserved and 7ish GB committed.