Troubleshooting系列-gc日志分析及分析工具介绍

Java的垃圾收集(GC)日志提供了有关垃圾收集器的详细信息,包括GC事件、停顿时间、内存使用情况等。通过分析GC日志,可以了解应用程序的垃圾收集行为和性能状况,帮助进行调优故障排查

如何生成GC日志

前期落地实践之JAVA应用启动脚本中有有关gc日志的设置,主要参数如下:

bash 复制代码
# 打印GC日志 
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation" 
JAVA_OPTS="$JAVA_OPTS -XX:+PrintHeapAtGC -Xloggc:$work_home/logs/gc.log -XX:GCLogFileSize=1m -XX:NumberOfGCLogFiles=10"

相关参数说明可参考ORACLE官网关于JVM参数相关文章

GCViewer介绍

GCViewer是一款用于分析和可视化Java垃圾收集(GC)日志的工具。它提供了一个直观的界面,可以帮助开发人员和性能工程师更好地理解和分析应用程序的垃圾收集行为,并进行性能调优。

官网地址:github.com/chewiebug/G...

需要自行编译成jar执行

bash 复制代码
Toby@TOBY-HYW MINGW64 /d/code
$ git clone https://github.com/chewiebug/GCViewer.git
Toby@TOBY-HYW MINGW64 /d/code/GCViewer (master)
$ mvn clean install -DskipTests=true

生成gcviewer-1.37-SNAPSHOT.jar,执行java -jar gcviewer-1.37-SNAPSHOT.jar 打开图形界面

打开GC日志后,生成概览界面

可在View选择需要查看的内容,默认展示所有 Event details包含各种gc的停顿

右下角是总结、内存和停顿,下图是内存

GCeasy介绍及使用

GCeasy 是一个基于 Web 的垃圾回收日志分析工具,可以用于分析 JVM 的垃圾回收日志,提供可视化的分析结果和建议 。GCeasy 可以分析所有主流的垃圾回收器,包括 CMS、G1、Parallel 和 Serial 等,支持多种垃圾回收日志格式,包括 GC log、Jstat log 和 JMX 等。

官网地址:gceasy.ycrash.cn/

先上传gc日志,需要进行压缩

分析完之后可以生成报告,我的gc日志生成的报告URL如下:gceasy.ycrash.cn/my-gc-repor...

先是总体概览和一些建议 JVM 内存大小,比较清楚知道大小 关键性能指标(KPI) 交互图标非常直观看到gc前后对比,还可以选择 其他的不一一说明了,具体可以看上述URL

总结

整体来说,GCeasy能够分析的内容更多,GCViewer是一个本地jar。如果考虑到信息安全风险,建议使用GCViewer;如果项目中对信息安全要求不高,可以使用GCeasy,还可以将分析报告分享给其他人共同分析。

附件

gcviewer-1.37-SNAPSHOT.jar自己编译下载链接如下:

链接:pan.baidu.com/s/1XwTb6PKm... 提取码:3jwl

上述GCeasy生成的报告地址:

链接:pan.baidu.com/s/103Nru2py... 提取码:ajmb

相关推荐
陈随易8 分钟前
前端项目部署只要30秒
前端·后端·程序员
YIAN12 分钟前
从零手写文件读取 MCP 服务:一文吃透 Model Context Protocol 全链路通信原理
前端·后端·mcp
Imchendiana12 分钟前
《狂人日记NO.9》— 前后端一把梭,我的全栈实录
前端·后端
学渣超12 分钟前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
掉鱼的猫14 分钟前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc
带刺的坐椅32 分钟前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·ai·llm·agent·solon-ai
c2385635 分钟前
互斥锁高频面试题全解:从基础概念到底层实现,一文通关
java·c++·面试·职场和发展
北冥you鱼44 分钟前
Go 语言读取链上数据:从基础到实战
开发语言·后端·golang
程序员cxuan1 小时前
Claude Code 为了封禁中国用户,竟然在代码里下毒
人工智能·后端·程序员
郡杰1 小时前
Git基础与开发平台搭建
git·后端