问题
My tomcat server is behaving strange, it has allocated 6GB of memory from system, but more than 4GB is marked as "free".
This is a screen from tomcat server status:
I understand what "Free memory" in JVM means, but I do not understand why it is not returning lets say in this situation at least 3GB back to system.
Env:
- Java 8
- Tomcat 8
- Debian 8.3
- Total memory on machine: 64 GB
回答1:
Since you haven't overridden any JVM options, Tomcat uses the default garbage collector which is ParallelGC in JDK 8.
ParallelGC does not uncommit heap memory. Try -XX:+UseG1GC
option. G1 garbage collector
is capable of releasing memory back to the OS.
See this article for more information.
来源:https://stackoverflow.com/questions/52878059/tomcat-servers-jvm-free-memory-not-returned-to-os