【发布时间】:2017-02-12 11:18:57
【问题描述】:
我们在 Wildfly 8.2 中部署了一个企业应用程序,最小和最大堆设置为 1.5 GB。其中一项操作是导致将太多对象加载到堆中。尽管该对象在操作后被取消引用,但 jvm 堆使用量并没有下降。
但是,如果我在外部手动触发 GC(使用 jcmd),我会看到堆使用量大幅下降。为什么普通 GC 不像 GC.run 那样减少内存?
JVM 设置
-Xms1536m -Xmx1536m -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=128M -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Djsse。 enableSNIExtension=false -Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
【问题讨论】:
标签: java memory-leaks garbage-collection jvm wildfly-8