我使用的是 Solaris 10、Wildfly 10 和 java 1.8.0_66。
我想到让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"
它不旋转。看来我必须添加参数 -XX:+PrintGCDetails
才能使 gc 日志文件旋转。
我的理解有误吗?或者我是否错过了任何设置,因此它不会旋转?
谢谢海伦
最佳答案
看来你自己已经明白了这一点。 JDK 中 GCLogFileSize 的最小值为 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");
}
关于java - JVM gc 日志不旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836532/