Java GC日志收集

       说结论,有两种方法

一、JVM启动时

       Jvm 启动时,添加参数:

 -Xlog:gc*:file={file-path} 

二、Jstat加进程号

       优势,可在JVM运行时,无需任何先决条件的情况下动态捕获GC 指标,说白了就是 jvm 启动后,再去获取。

       典型命令:

 jstat -gc -t 11656 10000 30 
  • -gc :将显示与垃圾收集相关的统计信息
  • -t :自JVM启动以来的时间戳将被打印(以秒为单位)
  • 11656:目标JVM进程ID
  • 10000:每10,000毫秒(即10秒)将打印一次统计信息。
  • 30 :将打印30次迭代的统计信息。 因此,以上选项将导致JVM打印指标300秒(即10秒x 30次迭代)。

       除了-gc之外,还可以传递其他选项来生成不同的数据集。有关不同选项的更多详细信息,如下:

  • S0C –幸存者0区域的容量,以KB为单位
  • S1C –幸存者1区域的容量,以KB为单位
  • S0U –幸存者0区域使用的空间以KB为单位
  • S1U –幸存者1区域以KB为单位使用空间
  • EC –伊甸园地区容量(KB)
  • 欧盟–伊甸园地区的已利用空间(以KB为单位)
  • OC –旧区域容量(KB)
  • OU –旧区域的已利用空间,以KB为单位
  • MC –元空间区域容量,以KB为单位
  • MU –元空间区域使用的空间以KB为单位
  • CCSC –压缩类空间区域的容量,以KB为单位
  • CCSU –压缩类空间区域以KB为单位使用空间
  • YGC –迄今为止发生的年轻GC事件的数量
  • YGCT –到目前为止,年轻GC花费的时间
  • FGC –迄今为止已发生的完全GC事件的数量
  • FGCT –到目前为止已花费的完整GC时间
  • GCT –到目前为止所花费的GC时间总量(基本上是YGCT + FGCT)

Jstat 的输出解释

时间戳记自JVM启动以来的时间(以秒为单位)= 164.9秒
年轻一代的能力年轻一代由幸存者0,幸存者1,伊甸园地区组成。因此,容量为:S0C + S1C + EC= 116224.0 + 116224.0 + 116736.0= 349184 kb= 341 mb
年轻一代利用尺寸S0U + S1U +欧盟= 0 + 1520 + 68761.8= 70281.8 kb= 68.63 mb
老一代容量超频= 431616 kb= 421.5 mb
上一代利用尺寸OU= 280502.5 kb= 273.93 mb
元空间容量MC= 32384 kb= 31.62 mb
元空间利用的大小= 31155.5 kb= 30.42mb
年轻GC计数青年会= 29
在Young GC中花费的时间青年会= 0.836秒
在GC中花费的总时间GCT= 2.27秒

Jstat的挑战

       Jsta t的挑战之一是需要手动分析生成的统计信息。 而仅了解/解释一行内容将花费很长时间,这将很繁琐。 因此,可以使用 GCeasy 工具,该工具可以解析 jstat 输出并生成有洞察力的图形和指标。 这是 GCeasy 通过分析上述jstat输出生成的 Jstat分析报告

Jstat的局限性

       Jstat 没有提供 GC 活动的详细信息。 它仅提供必要的信息。 因此,我们将无法获得以下信息:

  1. 如果一次采样中报告了多个GC事件 ,我们将不知道每个GC事件的暂停时间是多少。
  2. 用户(即Java层),系统(即内核)和用户花费了多少时间
  3. 有多少个GC线程正在工作,并占用了多少时间?
  4. 一个GC事件具有几个子阶段(例如初始标记,清理,备注,并发标记……)。 信息分类不可用。
  5. 每个GC事件回收了多少字节

       有时,jstat 报告的数据也会产生 误导

最后

       如果您想进行准确的GC分析,GC日志是更可靠的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值