GC日志可视化分析 & JVM状态可视化 工具整理

本文介绍GC日志分析与JVM状态可视化的五款工具:GCeasy、GCPlot、JClarity、GcViewer和JVisualVM。涵盖工具的部署、使用流程,包括在线与本地部署方式,以及JVisualVM的远程监控、插件安装等高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

一、GC日志可视化分析工具

    1. 概述

    2. GCeasy

    3. GCPlot

    4. JClarity

    5. GcViewer

二、JVM状态可视化(JVisualVM)

    1. 概述

    2. 运行

    3. 安装插件

    4. 远程监控

        4.1 jstatd连接 

        4.2 JMX连接(以Tomcat为例)


一、GC日志可视化分析工具

    1. 概述

            本文选取https://fasterj.com/tools/gcloganalysers.shtml 中按更新日期排序的GC日志分析工具的前四个,好处:目前都还有人维护;

            实验GC日志生成参数:-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/Desktop/gc.txt;

            JDK8;macOS;

            工具包含主要指标(Metrics):JVM Heap Size(Generation / Allocated space / before GC / after GC);Throughput;Pause(Minor GC / Full GC / count);Reclaimed Bytes;GC count;GC causes;Allocatied Objects Size;Promoted Object Size;created bytes;

            本地部署的工具比在线工具快;

    2. GCeasy

            部署 https://gceasy.io/index.jsp#features

            1. 将GC日志文件gc.txt压缩成zip;

            2. 访问https://gceasy.io/index.jsp#features,完全在线,上传zip;

            3. Analyze,多等一会,将会展示数据和图表;     

    3. GCPlot

            部署(同官网)https://gcplot.com/

            1. 安装docker;

            2. 在终端运行命令:docker run -d -p 80:80 gcplot/gcplot;

            3. 在浏览器访问地址:http://127.0.0.1;用户名和密码,均为admin;

            4. General --> Upload GC Log --> 选择文件 --> 点击Upload按钮;

            5. Analysis Groups --> Files --> 点击上传的GC日志gc.txt --> 将会JVM info,指标按tab页分类;

    4. JClarity

            部署(付费)https://www.jclarity.com/censum/

            1. 在官网选择试用,填写信息(邮箱),将会收到下载地址和uuid;

            2. 在下载页输入邮箱、uuid、操作系统,点击submit,将会收到包含licence key的邮件,浏览器将下载安装包;

            3. (macOS下载tgz)双击tgz文件,将解压后目录下的文件移动到应用程序目录下,在启动台点击icon运行;

            4. 首次运行输入licence key;

            5. 点击Analyse a GC Log;上传GC日志文件gc.txt;

            6. 将会展示分析结果和建议(ANALYTICS,如?图所示)、图表和数据(GRAPHS AND DATA);

JClarity分析截图
Clarity分析功能截图

    5. GcViewer

            部署 https://github.com/chewiebug/GCViewer

            1. 下载工程;

            2. 在Intellij idea中打开;运行com.tagtraum.perf.gcviewer.GCViewer类的main函数;

            3. 点击左上角打开GC日志文件gc.txt;(View菜单可调整折线图及图例,图表分辨率可调整,如下?图)

View菜单
View菜单调整折线图图例
分辨率
分辨率调整

 

二、JVM状态可视化(JVisualVM)

    1. 概述

            建议与被监控程序运行在不同机器上(远程监控)。

            安装插件让JVisualVM完整。(常用:Virsul GC、MBeans)

    2. 运行

            在$JAVA_HOME/bin目录下,运行jvisualvm命令

            启动时多等一会,将会在左侧菜单栏看见本地Java应用

    3. 安装插件

            JVisualVM插件说明 https://visualvm.github.io/plugins.html           

            菜单栏 --> 工具(T) --> 插件(P) --> 可用插件 --> 全选,安装

            配置JConsole Plugins

            1. 下载https://github.com/TheLQ/GamersClub/tree/master/build/bcf736a518834fe7aa689d74d5ca1b/demo/management/JTop JTop.jar;

            2. 左侧菜单栏,本地 --> 双击VisualVM,进入VisualVM监控页--> 在右侧监控页,选择"JConsole Plugins" tab页,看见no jconsole plugin installed提示,点击configure plugins按钮,将JTop.jar添加进来,应用并重启JVisualVM;

    4. 远程监控

            远程机器操作系统:Linux

        4.1 jstatd连接 

            1. 在/etc/hosts文件末尾增加一行:

该机器ip(可通过ifconfig命令获得)  hostname(可通过hostname命令获得)

 

           2. 在远程机器$JAVA_HOME/bin目录下,新建jstatd.all.policy文件,内容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {

 permission java.security.AllPermission;

};

            3. 在远程机器$JAVA_HOME/bin目录下,执行命令:jstatd -J-Djava.security.policy=jstatd.all.policy &,将后台运行,执行成功情况下不输出任何信息;

            4. 测试是否能远程监控Java程序,在本机执行命令:jps 远程机器ip,将输出远程机器上的Java进程

            5. JVisualVM左侧菜单栏,远程,右键 --> 添加远程主机 --> 输入远程主机IP --> 左侧菜单栏,远程主机IP上右键 --> 添加jstatd连接,默认端口1099;若成功,左侧菜单栏远程主机IP下,将看到jstatd进程及其它运行在远程主机上的Java进程,以及它们的pid;

        4.2 JMX连接(以Tomcat为例)

            1.  编辑Tomcat的bin目录下的catalina.sh,在首部注释块之后添加:(jmxremote.port端口号可修改为任一未被占用的端口号)

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

             2. 重启Tomcat;(配置了JMX连接的Tomcat,shutdown关闭时会报错误,无法关闭,Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999;  此时kill -9 杀死占用9999端口的进程即可,即关闭Tomcat进程;)

            3. JVisualVM左侧菜单栏 --> 远程主机IP上右键 --> 添加JMX连接 --> IP后添加jmxremote.port指定的端口号,勾选不要求SSL连接;若成功,左侧菜单栏远程主机IP下,将看到带JMX logo的进程;

            使用安全凭证,可参考:https://www.cnblogs.com/sunshine-2015/p/5547128.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值