我有一个 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