java - JVM gc 日志不旋转

标签 java rotation garbage-collection jvm

我使用的是 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/

相关文章:

java - AffineTransform 鼠标瞄准旋转 90 度卡顿

ios - SwiftUI与addArc一起旋转有时无法正常工作

ios - SceneKit:使用平移手势将相机朝其面向的方向移动

java - 谷歌应用引擎 JAVA : How to add more than one parameter to the Task Queue?

java - 有没有办法从 ViewGroup 中删除 View

iOS - 应用程序崩溃是 Garbagecollector 的错吗?

java - android中奇怪的内存分配

java - 清除内存中的图像流

java - 括号和数组声明的问题

java - tomcat 似乎部署了两次