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

相关推荐
草履虫建模10 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
qq_2975746712 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
老毛肚12 小时前
MyBatis插件原理及Spring集成
java·spring·mybatis
学嵌入式的小杨同学12 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
lang2015092812 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
Re.不晚13 小时前
Java入门17——异常
java·开发语言
缘空如是13 小时前
基础工具包之JSON 工厂类
java·json·json切换
追逐梦想的张小年13 小时前
JUC编程04
java·idea
好家伙VCC13 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
南极星100514 小时前
蓝桥杯JAVA--启蒙之路(十)class版本 模块
java·开发语言