在tomcat上的Java Web应用程序中启用GC日志

时间:2019-05-08 10:54:21

标签: java garbage-collection

我有一个在Tomcat上运行的Java Web应用程序(作为服务运行), 我想启用GC日志记录。 在java / bin /文件夹的Windows命令行中,我正在运行以下命令

java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:C:/Users/aa/Desktop/gc.log

日志已创建,但其中包含损坏的数据,并且日志未更新

Java HotSpot(TM) 64-Bit Server VM (25.171-b11) for windows-amd64 JRE (1.8.0_171-b11), built on Mar 28 2018 16:06:12 by "java_re" with MS VC++ 10.0 (VS2010)
Memory: 4k page, physical 16655948k(3946040k free), swap 39679116k(5477732k free)
CommandLine flags: -XX:InitialHeapSize=266495168 -XX:MaxHeapSize=4263922688 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 
Heap
PSYoungGen      total 76288K, used 3932K [0x000000076b400000, 0x0000000770900000, 0x00000007c0000000)
eden space 65536K, 6% used [0x000000076b400000,0x000000076b7d7240,0x000000076f400000)
from space 10752K, 0% used [0x000000076fe80000,0x000000076fe80000,0x0000000770900000)
to   space 10752K, 0% used [0x000000076f400000,0x000000076f400000,0x000000076fe80000)
ParOldGen       total 175104K, used 0K [0x00000006c1c00000, 0x00000006cc700000, 0x000000076b400000)
object space 175104K, 0% used [0x00000006c1c00000,0x00000006c1c00000,0x00000006cc700000)
Metaspace       used 2909K, capacity 4480K, committed 4480K, reserved 1056768K
class space    used 329K, capacity 384K, committed 384K, reserved 1048576K

但是当我设置

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:C:/Users/aa/Desktop/gc.log

此配置在Eclipse VM参数中有效。 我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您必须将这些标志添加到Tomcat / bin目录的JAVA_OPTS文件的setenv.bat字段中。

Tomcat进程是否具有对GC Log文件夹的写访问权? 写入日志后,它们不应损坏。您可以使用gceasy.io快速检查日志。

仅当GC运行时,日志才会更新。根据您的应用程序和GC算法,这可能只是较长时间的一次。

提示:不要忘记激活日志循环,否则您可能会耗尽存储空间。

相关问题