一文学会使用GCeasy——一款超好用的在线分析GC日志的网站

GC日志分析神器-GCEasy详解 前言 GCEasy是一款非常好用的在线分析GC日志的工具,打开官网,直接上传gc日志,也可以更加上门的要求进行压缩上传。 JVM memory size(jvm内存大小区域) JVM memory size ,GCEasy展示了年轻代、老年代、元空间。JVM给分配的大小和程序运行过程中使用的峰值大小。 从JVM memory size展示的信息,我们可以判断是否需要做下面的几件事情。 是否需要修改JVM内存(-Xms、-Xmx、-Xmn…)相关配置,比如年轻代和老年代峰值远远小于分配的大小,这个时候我 阅读详情
AI摘要

本文详细介绍了如何使用ParallelGC在JDK1.8中生成GC日志,并通过GCeasy工具进行可视化分析。从JVM参数设置、GC日志输出到GCeasy图形化分析结果解读,涵盖JVM堆内存、关键性能指标、GC事件统计等多个方面。

前言

  • 此次的GC分析,用的是ParallelGC的日志
  • JDK1.8

可能很多读者都不知道如何打印出程序的GC日志,下面来介绍分别使用IDEA输出GC日志和直接从Tomcat服务器上输出GC日志。其实这两种方式都使用了同样的JVM命令:

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:./gc.log

-XX:+PrintGCDetails:表示的是打印GC日志详情
-XX:+PrintGCTimeStamps:表示打印GC时间戳
-Xloggc: ./gc.log:表示在当前目录下生成gc.log文件

使用IDEA输出GC日志

在这里插入图片描述
输出日志结果可以在图中Application server设置的Tomcat 7.0.94中的bin目录下,如图:
在这里插入图片描述

在Tomcat服务器上输出GC日志

将上述设置的JVM参数,配置到Tomcat/bin/catalina.sh中,如图:
在这里插入图片描述
导出结果同样的在tomcat/bin/目录下。

打印出GC日志之后,就可以拿去GCeasy官网上进行GC可视化分析了。下文将详细讲解下GCeasy的图形化分析结果。
进入GCeasy官网之后,选择需要导入的GC日志文件导入即可。
在这里插入图片描述

正文

JVM Heap Size

这一部分分别使用了表格和图形界面来展示了JVM堆内存大小。如图所示:
在这里插入图片描述
左侧分别展示了年轻代的内存分配分配空间大小(Allocated)和年轻代内存分配空间大小的最大峰值(Peek),然后依次是老年代(Old Generation)、元数据区(Meta Space)、堆区和非堆区(Young + Old + Meta Space)总大小。值得注意的是,每一代的最大内存利用率都会超过分配的大小,但是图中的内存分配利用率已经超过了峰值内存了。

Key Performance Indicators

这一部分是关键的性能指标,如图:
在这里插入图片描述

  • Throughput表示的是吞吐量
  • Latency表示响应时间
    • Avg Pause GC Time 平均GC时间
    • Max Pause GC TIme 最大GC时间

Interactive Graphs

在这里插入图片描述
第一部分是Heap after GC,GC后堆的内存图,堆是用来存储对象的,从图中可以看出,随着GC的进行,垃圾回收器把对象都回收掉了,因此堆的大小逐渐增大。

在这里插入图片描述
第二部分是Heap before GC,这是GC前堆的使用率,可以看出随着程序的运行,堆使用率越来越高,堆被对象占用的内存越来越大。

在这里插入图片描述
第三部分是GC Duration Time,就是GC持续时间。从图中可以看到,发生Full GC的时间持续的比较端,而Young GC持续的时间比较长。图中横坐标表示GC发生的时间段,纵坐标表示的是GC持续时间。

在这里插入图片描述
第四部分表示的是GC导致程序停顿持续的时间,一个GC事件的发生具有多个阶段,而不同的垃圾回收器又有不同的阶段,这里展示不作细分。这些阶段(例如并发标记,并发清除等)与程序线程一起并发运行,此时不会暂停程序线程。但是某些阶段(例如初始标记,清除等)会暂停整个应用程序,所以此图标描述的仅暂停阶段所花费的时间。

在这里插入图片描述
第五部分表示的是GC回收掉的垃圾对象的内存大小。从图中可以看出,Full GC仅仅回收不到1M的对象,而Young GC则回收的对象比较多,大部分发生在12.40左右。

在这里插入图片描述
第六部分表示的是Young Gen,年轻代的内存分配情况。对象都是朝生夕死,年轻代存放的就是刚刚产生的对象,每进行一次GC,都会GC掉很多垃圾对象,剩下的就是右GC Root关联的对象,这些对象会年龄会逐渐增加,达到了一定阈值就会晋升为老年代的对象。可以看到before GC表示的图线随着时间的进行逐渐增大,也就是年轻代中对象越来越多,而GC事件发生后,年轻代中对象就会减少,也就是after GC图线表示的内存变化趋势。

在这里插入图片描述
第七部分是Old Gen,表示的是老年代的内存分配情况。细心的读者会发现,为啥一开始before GC的内存大小比after GC的内存分配要少呢?这里得先知道老年代存放的都是年龄大的对象,意思就是经过了多次GC都没有被GC掉的对象,就会晋升为老年代的对象。所以这就解释了为啥after GC内存要比before GC内存要大,因为每次GC过后,都会有年轻代的对象晋升为老年代对象。

在这里插入图片描述
第八部分是Meta Space,表示的是元数据区内存分配情况。

在这里插入图片描述
第九部分表示的是堆内存分配和晋升情况,从图中可以看出,随着时间的推移,堆区中对象分配越来越多,同事晋升对象也越来越多。

GC Statistics

在这里插入图片描述
左图:表示的是堆内存中Minor GC和Full GC回收垃圾对象的内存。
中图:总计GC时间,包括Minor GC和Full GC,时间单位为ms。
右图:GC平均时间,包括了Minor GC和Full GC。

在这里插入图片描述
接下来则分别表示的是总GC统计,MinorGC的统计,FullGC的统计,GC暂停程序的统计。

Object Stats

在这里插入图片描述
接下来是对象统计,Total Created Bytes表示的是创建的字节总数,Total promoted bytes表示的是晋升的字节总数,Avg creation rate表示的是平均创建字节率,Avg promotion rate表示平均的晋升率。

Memory Leak

由于记录的程序没有内存泄漏,所以这里就没有内存泄漏的日志信息。此处可以诊断8种OOM中的5种(Java堆内存溢出,超出GC开销限制,请求数组大小超过JVM限制,Permgen空间,元空间)。

GC Causes

在这里插入图片描述
CG所花费的时间,也就是停顿线程的时间。

除了上面介绍的以外,还有Consecutive Full GC、Safe Point Duration、Tenuring Summary以及COmmand Line Flags等等,有兴趣的读者可以自己深入学习下。

JVM系列之:日志分析工具:GCViewer、VisualVM、GCeasy 本文为《深入学习 JVM 系列》第二十四篇文章 GCViewer GCViewer 是一个可以将 JVM 中的 gc log 可视化的工具,使用该工具可以帮助你充分的发现 JVM 垃圾回收中的潜在问题,让你可以更加准确的做出关于 JVM GC 优化的决策。 安装并启动 git clone https://github.com/chewiebug/GCViewer.git //或者用 IDEA打开项目后,用 maven进行打包 mvn clean pacakge //得到一个 jar包 cd target. 阅读详情

相关推荐

GCEasy实战指南:从GC日志到JVM调优的全面解析

本文提供了一份GCEasy实战指南,详细解析如何利用这款智能工具分析GC日志并进行JVM调优。文章从生成合格的GC日志开始,逐步讲解如何解读GCEasy报告中的内存分配、关键性能指标和GC原因,并通过实战案例演示了从问题定位到参数调整的完整流程,帮助开发者科学地优化Java应用性能,告别手动分析GC日志的困扰。

weixin_29267307的博客 344

在线GC日志分析工具——GCeasy

在线GC日志分析工具——GCeasy

weixin_45789266的博客 2278

GC 日志解读与分析(番外篇可视化工具)

通过前面的学习,我们发现 GC 日志量很大,人工分析太消耗精力了。由于各种 GC 算法的复杂性,它们的日志格式互相之间不太兼容。 有没有什么工具来减少我们的重复劳动呢? 这种轮子肯定是有现成的。比如 GCEasy、GCViwer 等等。 这一节我们就开始介绍一些能让我们事半功倍的工具。 GCEasy 工具 GCEasy 工具由 Tier1app 公司 开发和支持,这家公司主要提供3款分析工具: ...

KimmKing的技术博客 637

【JVM系列】GCeasy使用

GCeasy 是一个基于 Web 的垃圾回收日志分析工具,可以用于分析 JVM 的垃圾回收日志,提供可视化的分析结果和建议。GCeasy 可以分析所有主流的垃圾回收器,包括 CMS、G1、Parallel 和 Serial 等,支持多种垃圾回收日志格式,包括 GC log、Jstat log 和 JMX 等。使用 GCeasy 可以帮助开发人员和运维人员快速定位 JVM 垃圾回收问题,包括内存泄漏、频繁 Full GC、停顿时间过长等常见问题。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 3万+

gc分析工具 也可以采用下面的在线分析gceasy.io

https://gceasy.io/

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建(详细文档)

m0_52369979的博客 727

GCeasy: 让天下没有难懂的GC日志

GC日志作为诊断JVM性能问题的关键信息源,常详尽且复杂,涉及大量的专业术语和技术细节,如堆内存划分、GC算法选择、停顿时间等,让许多开发者望而却步。今天介绍的神器,让人人都可以成为GC分析的专家。GCeasy 采用了先进的机器学习算法,可节省处理晦涩 GC 日志的时间,免除烦恼。当然,这是一个健康的状态,但是仍然给了你一些优化建议,这就可以算作对GC问题开的药方。Java虚拟机(JVM)的垃圾回收(GC)不仅关系到内存资源的有效管理,更对业务性能产生着深远影响。更多干货,倾情奉献。上传你的gc日志文件。

大数据,大模型,服务器,技术、架构,方案 883

Verilog简易电梯控制系统(2层)

电梯处于1楼,按KEY3,LED3亮,电梯处于上行状态时,立刻按 KEY2,LED2亮,电梯继续运行至2楼,LED3灭;按KEY3,LED3亮,电梯处于上行状态时,立刻按 KEY0,LED0亮,电梯继续运行至2楼,LED3灭;电梯处于2楼,按KEY2,LED2亮,电梯处于下行状态时,立刻按 KEY3,LED3亮,电梯继续运行至1楼,LED2灭;电梯处于2楼,按KEY2,LED2亮,电梯处于下行状态时,立刻按 KEY1,LED1亮,电梯继续运行至1楼,LED2灭;电梯运行至2楼后LED1灭,2楼待机。

m0_54240221的博客 6952

使用 GCEasy 进行 Java 应用程序垃圾收集(GC)分析

总结 GC 问题根据 GCEasy 的分析结果,总结导致 GC 问题的主要原因。记录下采取的措施和结果,为未来的优化提供参考。反思解决方案评估解决方案的有效性,思考是否有其他可能的优化方法。保持对 GC 行为的关注,定期检查 GC 日志以预防潜在问题。通过上述步骤,你可以充分利用 GCEasy 来分析 Java 应用程序中的 GC 行为。了解年轻代、老年代、Eden 区域和 Survivor 区域的概念对于诊断和解决 GC 问题至关重要。记得在实践中不断学习和探索,以适应不同的场景和技术挑战。

qq_45831414的博客 1540

SFF-8654接口引脚定义全解析:从SAS到U.2的高速硬件连接核心

在高速数据存储与传输领域,接口标准是连接主机与存储设备、确保信号完整性与协议互通性的物理基础。其核心原理在于通过精确定义的物理引脚和电气特性,承载不同的高速串行通信协议,如SAS和PCIe。这类高密度连接器的技术价值在于以紧凑的形态支持多协议兼容与高速率传输,满足了企业级存储、高性能计算对带宽和可靠性的苛刻要求。典型的应用场景包括服务器硬盘背板连接、NVMe U.2固态硬盘直连以及外部存储扩展。本文聚焦于SFF-8654(亦称Mini SAS HD)这一关键接口,深入剖析其引脚定义、信号分区(如高速数据通道

weixin_29188043的博客 705

使用moveit中的报错及解决

1.fatal error: moveit/move_group_interface/move_group.h: 没有那个文件或目录。// #include <moveit/move_group_interface/move_group.h> 改为。问题1 moveit/move_group_interface/move_group.h: 没有那个文件或目录。在运行c++程序时报错。

qq_60566155的博客 2285

jvm-问题分析及优化利器-gceasy的使用

什么是gceasy? gceasy是一个网站 :https://gceasy.io/ 主要为分析gc日志,形成可视化的报表快速排查问题使用。并且可以推荐jvm优化的配置(当然这块收费了!!!)。官网介绍:通用GC 日志分析器业内首款借助机器学习技术引导的垃圾回收日志分析工具。GCeasy 内置有智能功能,可自动检测 JVM 和 Android GC 日志中的问题并推...

逍遥壮士 4278

告别卡顿闪烁!在Cesium 1.134中集成SOG格式,让400万高斯秒级加载

本文详细介绍了如何在Cesium 1.134中集成SOG格式,实现400万高斯数据的秒级加载,解决传统加载方式导致的卡顿和闪烁问题。通过空间索引重构、属性量化编码和WebGPU原生支持等技术,SOG格式显著提升了三维地理空间可视化的性能。文章还提供了环境准备、模型转换和Cesium集成的实战指南,帮助开发者高效优化项目。

weixin_29313817的博客 496

可视化GC日志分析工具

许多人的努力,只是为了欺骗自己和做给别人看的而已。他们都只是看起来很努力而已。 概述 本章給大家推荐一款web可视化分析GC日志工具 准备测试代码 public class TestGC { // 实现:不断的产生新的数据(对象),随机的废弃对象(垃圾) public static void main(String[] args) throws Exception { ...

郑龙飞 2821

XS5018A TX ISP芯片同轴高清模拟输出图像处理芯片用户指南

当看门狗开启且系统异常,看门狗模块得不到喂狗信号时,自动产生看门狗复位信号,复位​​​​​​​。分量上与人眼对光谱的响应通常是有偏差的,通常通过一个色彩校正矩阵校正光谱响应的交叉效。但实际上由于电路的作用,复位模块对整个芯片及各个功能模块的复位进行统一管理,负责产生各个模块的软复位信。每个区域前景色可以在 16 个色表中查找,单个区域的前景色统一,各个区域的前。较弱的坏点被放大成刺眼的白点和明显的黑点,强烈推荐开启动态坏点校正功能。四种制式,通过寄存器配置,可以很方便的实现四种制式的切换、且可以对截止。

2403_88922712的博客 1959

3dMax效率翻倍!用Octopus章鱼插件打造你的专属快捷菜单(附MaxScript入门指南)

本文详细介绍了如何利用Octopus插件和MaxScript脚本在3dMax中打造高效快捷菜单,显著提升三维建模与动画制作的工作效率。通过饼状菜单系统、自动化宏录制和脚本控制,用户可实现个性化工作流,节省大量操作时间。文章还提供了MaxScript入门指南,帮助开发者快速掌握这一强大工具。

weixin_30920853的博客 151

分析GC日志

1.GC日志格式 1.1 GC分类 1.2 GC日志结构剖析 1.3 GC日志分析工具 1.4人生感悟

qq_44300280的博客 831

22、狭义相对论与曲线坐标空间相关知识解析

本文深入解析了狭义相对论与曲线坐标空间的核心概念,涵盖能量-动量张量的定义与守恒、曲线坐标系下的度量张量与基向量性质、协变与逆变张量的变换规则,并介绍了克里斯托费尔符号与协变导数的计算方法。进一步探讨了在弯曲空间中进行微积分运算的基础理论及其在广义相对论中的关键应用,如爱因斯坦场方程如何描述物质-能量对时空曲率的影响,为理解黑洞等引力现象提供了理论框架。

lambda的博客 115

GC调优

同时还可以监控对象晋升的直方图。2)缓存对象过多:呈现锯齿状,对象创建之后内存上升,一旦发生垃圾回收之后下降到底部,并且每次下降之后的内存大小接近,处于比较高的位置。1)正常情况:呈现锯齿状,对象创建之后内存上升,一旦发生垃圾回收之后下降到底部,并且每次下降之后的内存大小 接近,存留的对象较少。通过GC日志,可以更好的看到垃圾回收细节上的数据,同时也可以根据每款垃圾回收器的不同特点更好地发 现存在的问题。最合理的设置方式应该是根据最大并发量估算服务器的配置,然后再根据服务器配置计算最大堆内存的值。

我的博客 1502

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jvm中GC日志可视化工具分析(十一)

一、gc easy 1.网址:https://gceasy.io 2.直接上传GC日志文件 里面有列出了各种信息,还有图形化的信息。 吞吐量:99.997% 响应时间:平均停顿时间11.9ms;最大停顿时间:40.0ms 二、GCViewer 1.github地址:https://github.com/chewiebug/GCViewer 2.将项目...

qq_35151346的博客 1091

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java gc 分析日志:https://gceasy.io/index.jsp#banner

一个不错java gc 分析日志:https://gceasy.io/index.jsp#banner

张伟的专栏 2413

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【JVM】监控调优(四):GC调优实操(gceasy)

JVM 调优主要就是调整下面两个指标: 停顿时间:垃圾收集器做垃圾回收中断应用执行的时间。-XX:MaxGCPauseMillis 吞吐量:运行用户代码时间/(运行用户代码时间+垃圾收集时间)。-XX:GCTimeRatio=n 停顿时间越短就越适合需要和用户交互的程序,良好的响应速度能提升用户体验;高吞吐量则可以高效地利用CPU时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。 GC调优步骤: 1)打印GC日志(注:Tomcat可以直接加载JAVA_OPTS变

二狗家有矿 1万+
上一篇: 使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案
下一篇: JVM出现连续的FullGC该怎么办?
CoderBruis
博客等级 码龄10年 4444粉丝 102原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值