10

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
2
  • Which version of Java is that? Commented Apr 26, 2016 at 18:19
  • Using Java 8 in the host Commented Apr 28, 2016 at 21:33

1 Answer 1

18
+50

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
Sign up to request clarification or add additional context in comments.

2 Comments

could you please add reference to docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/…. Then I'll upvote :-P
That makes it hard to plan VMs to deploy JVM applications. Used to be setting mx, mss, permgen to specific values below the physical memory size, and you're safe. Now I have a few JVM that have mx of 12g, and yet their VSS is twice that size and exceeds the total memory available on the box - which is a disaster waiting to happen, methinks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.