JVM gc日志不能旋转

时间:2017-03-16 14:13:17

标签: java rotation garbage-collection jvm

我使用的是solaris 10,Wildfly 10和java 1.8.0_66。

我想让gc日志旋转,只要我设置以下参数:

-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles
-XX:GCLogFileSize
-Xloggc

它应该旋转。

我将jvm params设为

JAVA_OPTS="$JAVA_OPTS -XX:-HeapDumpOnOutOfMemoryError  -verbosegc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=50 -XX:GCLogFileSize=5K -XX:+PrintGCDateStamps -Xloggc:/mylocation/standalone/log/gc.log"

它不会旋转。似乎我必须添加参数-XX:+PrintGCDetails才能使gc日志文件旋转。

我的理解错了吗?还是我错过了任何设置,所以它不会旋转?

谢谢,海伦

1 个答案:

答案 0 :(得分:2)

看来你已经自己想出来了。 GCLogFileSize在JDK中的最小值为8KB,即使您尝试设置更少也是如此。以下是HotSpot sources的相关片段:

  if (UseGCLogFileRotation && (GCLogFileSize != 0) && (GCLogFileSize < 8*K)) {
    FLAG_SET_CMDLINE(uintx, GCLogFileSize, 8*K);
    jio_fprintf(defaultStream::output_stream(),
                "GCLogFileSize changed to minimum 8K\n");
  }