频繁的完整GC与空堆

时间:2013-03-14 23:51:31

标签: java garbage-collection heap heap-memory

我有一个GC日志文件,当堆空时显示频繁的完整GC(最初每30分钟,然后是每分钟20,10,5到几个事件。但是,在某些时候,我可以看到一个堆使用率突然增加(我想象在用户开始连接到我的应用程序时)和完整的GC事件开始频繁发生。 我想不出有可能发生这种情况的原因。

我正在使用Oracle Vm 1.6,我的启动脚本是:

java -XX:+HeapDumpOnOutOfMemoryError \
     -Xmx7500m \
     -XX:HeapDumpPath=../logs \
     -verbose:gc \
     -XX:+PrintGCDetails \
     -XX:+PrintGCTimeStamps \
     -Xloggc:/app/diffusion/Logs/gc.log \
     -Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.ssl=false \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.jmxremote.port=2000 \
     -cp ../lib/diffusion.jar:../etc:../data com.pushtechnology.diffusion.Diffusion $1

1 个答案:

答案 0 :(得分:0)

尝试禁用显式GC,看看它是否有帮助:-XX:+DisableExplicitGC

然后,您可以收集一些线程转储,以确认当堆为空时应用程序中没有任何内容正在运行。