Jboss GC设置

Jboss GC设置,jboss,garbage-collection,Jboss,Garbage Collection,我们正在使用jboss EAP-6.4.0/jboss 我试图每30分钟执行一次GC。启动文件如下所示 NO_GC_LOG_ROTATE=`echo $JAVA_OPTS | $GREP "\-verbose:gc"` if [ "x$NO_GC_LOG_ROTATE" = "x" ]; then # backup prior gc logs mv "$JBOSS_LOG_DIR/gc.log.0" "$JBOSS_LOG_DIR/backupgc.log.0" >/de

我们正在使用jboss EAP-6.4.0/jboss

我试图每30分钟执行一次GC。启动文件如下所示

 NO_GC_LOG_ROTATE=`echo $JAVA_OPTS | $GREP "\-verbose:gc"`
if [ "x$NO_GC_LOG_ROTATE" = "x" ]; then
    # backup prior gc logs
    mv "$JBOSS_LOG_DIR/gc.log.0" "$JBOSS_LOG_DIR/backupgc.log.0" >/dev/null 2>&1
    mv "$JBOSS_LOG_DIR/gc.log.1" "$JBOSS_LOG_DIR/backupgc.log.1" >/dev/null 2>&1
    mv "$JBOSS_LOG_DIR/gc.log.2" "$JBOSS_LOG_DIR/backupgc.log.2" >/dev/null 2>&1
    mv "$JBOSS_LOG_DIR/gc.log.3" "$JBOSS_LOG_DIR/backupgc.log.3" >/dev/null 2>&1
    mv "$JBOSS_LOG_DIR/gc.log.4" "$JBOSS_LOG_DIR/backupgc.log.4" >/dev/null 2>&1
    mv "$JBOSS_LOG_DIR"/gc.log.*.current "$JBOSS_LOG_DIR/backupgc.log.current" >/dev/null 2>&1
    "$JAVA" $JVM_OPTVERSION -verbose:gc -Xloggc:"$JBOSS_LOG_DIR/gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:+UseParallelOldGC **-Dsun.rmi.dgc.client.gcInterval=1800000 -Dsun.rmi.dgc.server.gcInterval=1800000** -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -version >/dev/null 2>&1 && mkdir -p $JBOSS_LOG_DIR && PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -verbose:gc -Xloggc:\"$JBOSS_LOG_DIR/gc.log\" -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading"
fi

不知道为什么这不起作用

EAP中的GC日志不能基于时间进行轮换。相反,它们可以基于大小旋转

可以在OpenJDK Oracle JDK上使用gclogfilerotation/NumberOfGCLogFiles/GCLogFileSize通过JVM设置滚动gc.log。例如:

-verbose:gc -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1048576

感谢病毒,这帮了我很大的忙,我不想轮换GC日志,但希望每1小时进行一次GC。我之前对你说过,你只能根据文件大小轮换GC日志。GC日志文件无法按基于时间的旋转进行旋转。