首页 > 解决方案 > Tomcat 服务器的 JVM 可用内存未返回给操作系统

问题描述

我的 tomcat 服务器的行为很奇怪,它从系统分配了 6GB 内存,但超过 4GB 被标记为“空闲”。

这是来自 tomcat 服务器状态的屏幕:

我理解 JVM 中的“可用内存”是什么意思,但我不明白为什么它没有返回让我们说在这种情况下至少有 3GB 回到系统。

环境:

标签: tomcatmemoryjvmdebian

解决方案


由于您没有覆盖任何 JVM 选项,因此 Tomcat 使用默认的垃圾收集器,即 JDK 8 中的 ParallelGC。

ParallelGC 不会取消提交堆内存。尝试-XX:+UseG1GC选项。G1 垃圾收集器能够将内存释放回操作系统。

有关更多信息,请参阅本文


推荐阅读