首页 > 解决方案 > RSS 内存在空闲 Java 进程上增长

问题描述

我正在运行几个用 java 编写的小型服务器。有一个监听标准套接字,其余的使用 ActiveMQ 相互通信。我注意到一些奇怪的事情,如果我让系统闲置几个小时,RSS 内存要么增长几到几十兆,要么缩小几到几十兆。我使用 jconsole 查看服务器中发生了什么,但内存使用和对象创建保持相对平稳。我使用 Oracle Java 和 OpenJDK 对此进行了测试。我尝试使用设置 MALLOC_ARENA_MAX=4 的推荐解决方案,但这没有效果。JVM中是否还有其他我不知道的事情发生,有没有办法阻止它?

设置:

标签: javamemorymemory-managementmemory-leaksjvm

解决方案


JVM中是否还有其他事情发生

是的。垃圾收集、JIT 编译、类加载/卸载、日志记录、I/O 等。更多详情请点击此处

Java 进程的 RSS 可以轻松上下数百兆字节——“几兆”通常根本不是问题。要查找从何处分配本机内存,请打开本机内存跟踪功能和/或使用async-profiler,如本答案中所述。


推荐阅读