我使用的是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日志文件旋转。
我的理解错了吗?还是我错过了任何设置,所以它不会旋转?
谢谢,海伦
答案 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");
}