【发布时间】:2012-06-17 20:28:07
【问题描述】:
有没有人在使用 G1 收集器时遇到 JVM(Hotspot)泄漏内存的问题?
我已将堆大小固定为 60GB(-ms 和 -ms 都设置为 60G),但 java 进程的大小(根据 ps 命令的 vsz 列)从 64GB 左右开始,但是在 7 小时内增加到 84GB。
使用并行收集器,进程大小在 20 小时运行后保持稳定,约为 65GB。
G1 收集器是否有其他人遇到过类似问题?我正在运行一个非常简单的基准测试,并且我没有使用任何直接缓冲内存或其他堆外内存(我知道)。
Java版本为1.7.0,更新5
(我已经向 Oracle 提出了一个关于此问题的错误,但我想我也会在这里检查一下,以防有人有解决方法)。
【问题讨论】:
-
将您的问题发送到hotspot-gc-dev@openjdk.java.net。
-
@Neil 你能告诉我们你使用的是哪个 Java 版本吗?
-
@alain.janinm 当然,现在是 1.7.0,更新 5。我已经更新了问题。
-
测试中不涉及直接缓冲区(顺便说一句,也有一种方法可以获取它们使用的内存量),也没有最终确定,LinkedList 的大小很小,所以没有问题。测试本身的一些编程问题:对于“有界”LHM,您可以使用受保护的方法
removeEldestEntry,但这与测试无关,存在数据竞争和不需要的同步。处理统计数据。然而,所有这些都不会影响测试。
标签: java garbage-collection jvm jvm-hotspot g1gc