如下所示,正常工作中出现了一个停止全球的GC操作,持续时间超过60秒。可以确定,在此期间(terracotta)客户端掉线并抱怨(terracotta服务器)未在此期间响应,因此可以将其视为整个时间段的暂停。
这是年轻/次要GC吗?如果是,是否可能是由于年轻代(伊甸园和幸存者)中的饥饿引起的?
只有109333(KB)被释放了吗?
我将开始绘制不同的内存容器图表,您还有什么其他建议可以进一步诊断此类问题?
这是年轻/次要GC吗?如果是,是否可能是由于年轻代(伊甸园和幸存者)中的饥饿引起的?
只有109333(KB)被释放了吗?
我将开始绘制不同的内存容器图表,您还有什么其他建议可以进一步诊断此类问题?
date, startMem=24589884, endMem=24478495, reclaimed=111389, timeTaken=0.211244 (1172274.139: [GC 24589884K->24478495K(29343104K), 0.2112440 secs])
date, startMem=24614815, endMem=24505482, reclaimed=109333, timeTaken=61.301987 (1172276.518: [GC 24614815K->24505482K(29343104K), 61.3019860 secs])
date, startMem=24641802, endMem=24529546, reclaimed=112256, timeTaken=2.68437 (1172348.921: [GC 24641802K->24529546K(29343104K), 2.6843700 secs])
使用以下配置,Sun JVM 版本为1.6:
-Xms28672m -Xmx28672m -XX:+UseConcMarkSweepGC -XX:+PrintGCTimeStamps -XX:+PrintGC
针对GC进一步调试的合理配置调整:
'-XX:+PrintGCDateStamps' Print date stamps instead of relative timestamps
'-XX:+PrintGCDetails' Will show what cpu went for (user, kern), gc algorithm used
'-XX:+PrintHeapAtGC' will show all of the heaps memory containers and their usage
'-Xloggc:/path/to/dedicated.log' log to specific file