我有一个已启用 GC 日志记录的应用程序。堆似乎增长然后突然下降,但不记录 Full GC。如果我可以启用一些启动参数,它会告诉我什么 GC 事件正在减少堆大小?
我的环境: Linux 64 位、java 1.6.0_31、Java HotSpot(TM) 64 位服务器 VM(内部版本 20.6-b01,混合模式)
虚拟机参数: -server -Xms2560m -Xmx2560m -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m -XX:-PrintGC -XX: -PrintGCDetails -XX:-PrintGCTimeStamps -Xloggc:/xxxxx/gc.log -Dsun.rmi.dgc.client.gcInterval=86400000 -Dsun.rmi.dgc.server.gcInterval=86400000
3057.609: [GC 2397254K->2385777K(2619328K), 0.0572310 secs]
3058.898: [GC 2402801K->2391301K(2619328K), 0.0566620 secs]
3059.940: [GC 2408325K->2397156K(2619328K), 0.0534080 secs]
3059.995: [GC 2397265K(2619328K), 0.0069950 secs]
3065.635: [GC 2414180K->2404934K(2619328K), 0.0732700 secs]
3065.849: [GC 2419994K(2619328K), 0.1150630 secs]
3070.248: [GC 1593931K->1591825K(2619328K), 0.1084230 secs]
3072.440: [GC 1608552K->1606431K(2619328K), 0.0533140 secs]
3087.759: [GC 1623455K->1614544K(2619328K), 0.0215850 secs]
什么事件导致堆在输出 3065.849 和 3070.248 之间收缩?是否有一个 VM 参数可以记录它?我尝试添加 -verbose:gc 但这不会改变输出。
最佳答案
关于java - UseConcMarkSweepGC 详细 gc 输出显示内存下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13636373/