Java JVM gc日志未旋转

Java JVM gc日志未旋转,java,rotation,garbage-collection,jvm,Java,Rotation,Garbage Collection,Jvm,我正在使用solaris 10、Wildfly 10和java 1.8.066 我想让gc日志旋转,只要设置以下参数: -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles -XX:GCLogFileSize -Xloggc 它应该旋转 我将jvm参数设置为 JAVA_OPTS="$JAVA_OPTS -XX:-HeapDumpOnOutOfMemoryError -verbosegc -XX:+UseGCLogFileRotation -XX:N

我正在使用solaris 10、Wildfly 10和java 1.8.066

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

-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles
-XX:GCLogFileSize
-Xloggc
它应该旋转

我将jvm参数设置为

JAVA_OPTS="$JAVA_OPTS -XX:-HeapDumpOnOutOfMemoryError  -verbosegc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=50 -XX:GCLogFileSize=5K -XX:+PrintGCDateStamps -Xloggc:/mylocation/standalone/log/gc.log"
它不旋转。似乎我必须添加param
-XX:+PrintGCDetails
以使gc日志文件旋转

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


谢谢,海伦,看来你自己已经明白了
GCLogFileSize
在JDK中的最小值为8KB,即使您尝试设置得更少。以下是来自以下方面的相关片段:

if(使用gclogfilerotation&&(GCLogFileSize!=0)&&(GCLogFileSize<8*K)){
标志设置CMDLINE(uintx,GCLogFileSize,8*K);
jio_fprintf(defaultStream::output_stream(),
“GCLogFileSize更改为最小8K\n”);
}

您所说的“它不旋转”是什么意思?这是否意味着创建了一个文件而不进行旋转?还是说没有创建任何文件?只创建第一个gc文件
gc.log.0.current
,文件大小随gc日志的增加而增加。但是,即使
gc.log.0.current
文件大小超过5k,它也不会旋转到新文件,它仍然使用相同的文件
gc.log.0.current
,并且文件大小不断增长。从来没有创建过其他gc文件。似乎gc日志文件的最小大小是8K,所以当我设置为5K时,jvm设置为默认8K。这可能是它在5K时不旋转的原因。您也可以参考oracle文档
  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");
  }