温馨提示×

centos java日志gc如何查看

小樊
39
2026-09-12 00:37:14
栏目: 编程语言

在 CentOS 上查看 Java 应用的 GC(垃圾回收)日志,通常分为 “是否已经开启 GC 日志”“如何查看/分析 GC 日志” 两部分。下面按常见场景说明。


一、确认 Java 应用是否开启了 GC 日志

1. 查看启动参数

ps -ef | grep java

关注类似参数:

  • JDK 8 及之前:
-Xloggc:/path/to/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
  • JDK 9+:
-Xlog:gc*:file=/path/to/gc.log:time

如果没有这些参数,说明 GC 日志未开启


二、如何开启 GC 日志(常用方式)

✅ JDK 8 及之前

java -Xms512m -Xmx512m \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=5 \
-XX:GCLogFileSize=10M \
-Xloggc:/var/log/java/app-gc.log \
-jar app.jar

✅ JDK 9 及以后(推荐)

java -Xlog:gc*:file=/var/log/java/app-gc.log:time,level,tags:filecount=5,filesize=10M \
-jar app.jar

三、在 CentOS 上查看 GC 日志

1. 直接查看日志文件

tail -f /var/log/java/app-gc.log
less /var/log/java/app-gc.log

2. 常见 GC 日志内容示例(JDK 8)

2024-01-01T10:00:01.123+0800: 12.345: [GC (Allocation Failure)
[PSYoungGen: 123456K->12345K(234567K)] 234567K->123456K(456789K), 0.0456789 secs]

关键信息:

  • PSYoungGen:年轻代 GC
  • Full GC:全量 GC
  • 0.045 secs:GC 耗时
  • 前后内存变化

四、使用工具分析 GC 日志(推荐)

1. 命令行快速统计

grep "Full GC" /var/log/java/app-gc.log | wc -l

2. 图形化分析工具

  • GCViewer(开源)
  • GCEasy(在线):https://gceasy.io
  • MAT(内存分析)

3. jstat 实时查看(无需 GC 日志)

jstat -gcutil <pid> 1000

示例输出:

S0  S1  E   O   M  YGC YGCT FGC FGCT GCT
0.0 45.3 67.8 80.1 95.2 120 3.45 5 1.23 4.68

五、常见问题排查建议

  • Full GC 频繁:内存不足 / 内存泄漏
  • GC 停顿时间长:考虑 G1 / ZGC
  • 日志太大:开启日志轮转

如果你愿意,可以告诉我:

  • ✅ JDK 版本(java -version)
  • ✅ 应用启动方式(jar / tomcat / 容器)
  • ✅ 是想“实时看”还是“分析历史日志”

我可以给你更精确的命令。

0