我有一个运行在 eJDK 1.8.201 上的 Java 应用程序。我发现系统报告的 Java 进程的 RSS 使用量不断增加,它将达到超过物理内存的 90%,即 512M,并且我的代码会重新启动系统。另一方面,我从代码中定期打印出的 usedMemory() 始终在有限范围内波动,不超过物理内存的 37%(即 <= 190M)。根据我的理解,这意味着 JVM 没有将其空闲内存返回给操作系统。这个理解正确吗?我已经设置了 -Xmx=256M -Xms=256M,所以我认为 -Xmx 选项没有起作用。
你有什么想法可以解决这个问题吗?
该系统是嵌入式 Linux 在 ARMv7 板上。
你有什么想法可以解决这个问题吗?
该系统是嵌入式 Linux 在 ARMv7 板上。
PermGen
被替换为Metaspace
。我之前遇到了一个问题,即在运行时加载动态Groovy类会导致Metaspace
不断增长。默认情况下没有设置最小的Metaspace
。这值得进一步研究。 - Garreth Golding