On the kubernetes dashboard, there\'s a pod wherein the Memory Usage (bytes) is displayed as 904.38Mi
.
This pod holds the java app that was ran with
GC deals with a subset of memory used by process. There are regions of JVM memory which are not subject for garbage collection.
Below are few memory areas are not included in heap / metaspace
List above is not full, these are just largest memory consumers.
Here is JVM memory hierarchy diagram with related config options.
In summary, actual JVM memory appetite is always large than heap limit.
How much large depends on nature of application and could be established empirically.
UPDATE
Java Native Memory Tracking could be enabled in JVM to provide detailed reports related to memory usage across different functional areas.