4分钟在jvm消失了

时间:2011-09-16 07:56:46

标签: java jvm hang

我正在使用Eclipse Virgo来托管我的应用程序。应用程序将每10秒写一个日志 为了查看心跳记录,我发现4分钟是空白的。

我检查了gc.hprof.txt,但未找到完整的gc 由于某种原因,jvm停止运行并在4分钟后恢复? 你能给我一些建议吗?

日志:

2011-09-14 09:46:30,105 DEBUG [T=142][SbusHeartbeatClient.run() 109] Heartbeat:token=1,node=SbusNodeInfo
2011-09-14 09:46:40,105 DEBUG [T=141][SbusHeartbeatClient.run() 109] Heartbeat:token=1,node=SbusNodeInfo
2011-09-14 09:46:50,105 DEBUG [T=156][SbusHeartbeatClient.run() 109] Heartbeat:token=1,node=SbusNodeInfo
2011-09-14 09:47:00,106 DEBUG [T=154][SbusHeartbeatClient.run() 109] Heartbeat:token=1,node=SbusNodeInfo
2011-09-14 09:47:10,106 DEBUG [T=135][SbusHeartbeatClient.run() 109] Heartbeat:token=1,node=SbusNodeInfo
2011-09-14 09:51:35,682 DEBUG [T=141][SbusHeartbeatClient.run() 109] Heartbeat:token=1,node=SbusNodeInfo

JVM args是:

JVM_MEM=1536m
JVM_MN=318m
JVM_PS=318m

JAVA_OPTS="-server -Xms$JVM_MEM -Xmx$JVM_MEM -Xmn$JVM_MN -XX:ReservedCodeCacheSize=96m"
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=$JVM_PS -XX:MaxPermSize=$JVM_PS"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=3"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=3 -XX:+CMSParallelRemarkEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:log/gc.hprof.txt"

Host: SuSE Linux  2.6.32.12 64bit
Java: JDK 1.6.0_24 64bit

1 个答案:

答案 0 :(得分:1)

可能的原因:

  1. 日志记录线程因某些锁定而被绞死。
  2. 巨大的GC猪。
  3. 最糟糕的情况是,系统可能已经阻止了您的过程一段时间(罕见)