we have a java application running inside a Docker Container on Kubernetes. We measure RAM Usage in two different ways, once according to metrics reported by the JVM and once according to Container Advisor (cadvisor). We import all metrics in Prometheus and I post here some graphs, all of which refer to the same Pod and Container. The first five graphs are usage reported by the JVM, the last one is usage reported from cAdvisor.
My questions are:
- How come the form of the graphs is so different between what is reported from the cAdvisor and from the JVM?
- The cAdvisor always reports more RAM Usage than the JVM, specifically between container_memory_working_set_bytes and sum_jvm_memory_committed the difference stabilizes itself at around 300Mb. What could be a possible explanation?





