原创 石页粑粑 来自zxsk的码农 2020-09-28 06:18

一、GCViewer介绍

业界较为流行分析GC日志的两个工具——GCViewer、GCEasy。GCEasy部分功能还是要收费的,今天笔者给大家介绍一下GCViewer的使用与功能点。

二、GCViewer 使用

2.1 编译

首先,在github上搜索GCViewer项目,并下载到本地。GCViewer项目没有提供现成的release版本,利用如下maven编译命令即可完成GCViewer的编译工作,最终生成一个gcviewer-1.36.jar。

mvn clean install -DskipTests

注:

  • 官网上给出的maven命令并没有-DskipTests,笔者在编译过程中tests部分有异常导致编译失败,因此添加了-DskipTests。
  • 在编译时,有异常表示要依赖git、svn,因此在编译前请安装这两个软件。

为了方便看官们去使用该工具,笔者将编译好的jar,存放百度网盘,欢迎下载。

链接:https://pan.baidu.com/s/1CCX6bg3zw-HtcX5Ls9CBXQ 提取码:ea5q

2.2 GCViewer介绍

双击gcviewer-1.36.jar,即可见到主界面,如下图:

接着,选择要分析的gc日志文件,即可出现分析界面,主要关注Chart、Event detail、summary/memory/pause三个标签页。

2.2.1 Chart

Chart标签页把每次GC的采集信息,转换成图表用以展示,包括堆的总大小、堆的使用量、单次full gc的时间等(有些折线是特定GC收集器所特有的)。

乍一看该图形,有点乱乱的感觉,大家可以点击工具栏中的view,选择自己感兴趣的曲线,如下所示:

2.2.2 Event detail

Event detail标签页如下图所示,展示了minor GC和full GC触发的原因、次数、最长时间、最短时间等信息。

由图可知

触发Young CG的原因有:

  • allocation failure,年轻代没有足够的内存去存放对象。
  • gclocker failure,JNI临界区被释放时会触发一次GC。

触发Full GC的原因有:

  • ergonomics,当新生代要晋升到老年代的占用空间,要大于老年代剩余内存空间时,便会触发full gc。
  • metadata gc threshold,metadata空间不够用时,便会触发一次full gc。(metadata的初始值可以使用java -XX:+PrintFlagsInitial命令来看看)
  • Heap Dump Initiated GC,执行jmap -dump:live pid,或jstat -gccause pid。
  • system gc,显示调用了System.gc()。

2.2.3 Summary、Memory、Pause

  • 进程运行66+h。
  • heap最大使用率达到 99.8%。
  • full gc最多的一次回收了14G heap。

  • 老年代最大使用率达到100%。
  • 新生代最大使用率达到99.7%。
  • 灰色部分参数由于JVM参数设置原因,没有相应的值。

Pause标签页展示的信息与Event detail标签页高度重合。

三、参考链接

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

[转帖]GC日志分析工具——GCViewer案例的更多相关文章

  1. 【转】gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

  2. GC之七--gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

  3. jvm的GC日志分析 [转]

      jvm的GC日志分析 标签: jvm内存javagc 2015-06-22 16:37 1566人阅读 评论(1) 收藏 举报  分类: Java(4)  JVM的GC日志的主要参数包括如下几个: ...

  4. JAVA 从GC日志分析堆内存 第七节

    JAVA 从GC日志分析堆内存 第七节   在上一章中,我们只设置了整个堆的内存大小.但是我们知道,堆又分为了新生代,年老代.他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比 ...

  5. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

  6. GoAccess日志分析工具使用文档

    ----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不 ...

  7. 可视化日志分析工具Gltail的安装与使用

    可视化日志分析工具Gltail的安装与使用      GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...

  8. 强大的日志分析工具 -- NSLogger

    转:http://www.cnblogs.com/yingkong1987/p/3329945.html 强大的日志分析工具 -- NSLogger 源码:https://github.com/fpi ...

  9. Log Parser 微软强大的日志分析工具

    Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件.XML 文件.CSV(逗号分隔符)文件,以及操作系统的事件日志.注册表.文件系统.A ...

  10. Mysql 配置慢查询日志(SlowQueryLog)以及使用日志分析工具

    [ 查看系统关于慢查询的设置 ] mysql> show variables like '%slow%'; +---------------------------+-------------- ...

随机推荐

  1. Java 打印Excel工作表

    示例要点 本文介绍如何通过Java程序打印Excel工作表.可通过以下方法打印: 默认打印机打印 指定打印机打印 程序环境 spire.xls.jar JDK版本要求1.6.0及以上的高版本 IDEA ...

  2. 遇到联邦计算数据碰撞难题怎么办?不妨试一试PSI

    摘要:随着MPC.隐私计算等概念的流行,诸多政府机构.金融企业开始考虑参与到多方计算的场景中,扩展数据的应用价值. 本文分享自华为云社区<使用PSI解决联邦计算的数据碰撞问题>,作者:br ...

  3. appuploader不是开发者账号

    Appuploader是一款可以帮助开发者上传iOS应用到Apple App Store的工具.很多开发者都知道,在上传应用到App Store之前,需要创建开发者账号并获得苹果官方的认证才能进行上传 ...

  4. 十大 CI/CD 安全风险(四)

    在上一篇文章,我们着重介绍 PPE 风险,并提供缓解相关风险的安全建议与实践.在本篇文章中,我们将会了解凭据使用环境管理不善与不安全的系统配置,并给出相应的风险缓解建议. 凭据使用管理不善 由于与凭据 ...

  5. sqlalchemy 报错 Lost connection to MySQL server during query 解决

    最近在开发过程中遇到一个sqlalchemy lost connection的报错,记录解决方法. 报错信息 python后端开发,使用的框架是Fastapi + sqlalchemy.在一个接口请求 ...

  6. 0.o?让我看看怎么个事儿之SpringBoot自动配置

    学习 SpringBoot 自动配置之前我们需要一些前置知识点: Java注解,看完就会用 学会@ConfigurationProperties月薪过三千 不是银趴~是@Import! @Condit ...

  7. C# Task 多任务:C# 扩展TaskScheduler实现独立线程池,支持多任务批量处理,互不干扰,无缝兼容Task

    先上源码: https://gitee.com/s0611163/TaskSchedulerEx     为什么编写TaskSchedulerEx类? 因为.NET默认线程池只有一个线程池,如果某个批 ...

  8. 【QT Tools】软件多语言国际化翻译的方法与步骤

    在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法和步骤,用以备忘和参考. 我们通常在写程序 ...

  9. P1379 八数码难题 ( A* 算法 与 IDA_star 算法)

    P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初 ...

  10. ios ipa包上传需要什么工具

    ​ 目录 ios ipa包上传需要什么工具 前言 一.IPA包的原理 二.IPA包上传的步骤 1.注册开发者账号 2.apk软件制作工具创建应用程序 3.构建应用程序 4.生成证书和配置文件 5.打包 ...