【发布时间】:2015-10-07 07:11:35
【问题描述】:
我在一些服务器上遇到了 GC 日志问题。它充满了这个:
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
注意到这发生在为 JVM 分配大量内存的服务器上:-Xms32G -Xmx48G。虽然这可能是一个红鲱鱼,但想提一下。
由于这些是低延迟/高吞吐量的应用程序,因此分析日志至关重要。但相反,它充满了上面的那些字符。
我们使用的是 Java 8:
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
我们用它来创建日志:
-verbose:gc
-Xloggc:/path/to/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
有人见过这个问题吗?可能是什么原因造成的?
【问题讨论】:
-
你是如何创建 gc 日志的?你是用
verbose:gc标志还是其他方式? -
@kucing_terbang:是的,我用信息更新了问题
-
^@是 Unix/Linux 的 Ctrl-@ 符号,ASCII 0。通常在 java 中经常发生内存归零。 -
截断日志文件后会出现这种情况吗?
-
@bdem 我的意思是文件被截断,也许是通过一些日志文件轮换过程?另请参阅此问题/答案:stackoverflow.com/questions/3822097/…
标签: java logging garbage-collection jvm java-8