I have the following host with the memory details:
$free -m total used free shared buffers cached Mem: 7872 7579 292 17 483 3983 -/+ buffers/cache: 3112 4759 Swap: 2047 14 2033
I have a java app running with the params -Xms200m -Xmx200m
, could someone please explain me why the VCZ is 3800076 and the RSS is 241304 (which is more of the Java params)
from the ps -aux
command:
66345 6773 0.2 2.9 3800076 241304 ? Sl Apr1 12:06 /apps/myapps/myapp1/java/bin/java -Xms200m -Xmx200m
1 Answers
Answers 1
Memory used by Java process (as seen by the OS) is not only limited to Java Heap. There are a lot more memory areas that should be also counted:
- Metaspace (where class metadata resides);
- Code Cache (storage for JIT-compiled methods and all the generated code);
- Direct ByteBuffers;
- Memory-mapped files, including files mapped by JVM, e.g. all JAR files on the classpath;
- Thread stacks;
- JVM code itself and all the dynamic libraries loaded by Java Runtime;
- Other internal JVM structures.
Use NativeMemoryTracking JDK feature to get the detailed breakdown of memory areas used by JVM:
java -XX:NativeMemoryTracking=detail -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics
0 comments:
Post a Comment