我是靠谱客的博主 无语超短裙,最近开发中收集的这篇文章主要介绍GC问题排查实战一前言GC信息gceasy分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

GC问题排查实战一

  • 前言
  • GC信息
    • 参数配置信息
  • gceasy分析
    • 内存使用
    • GC时间指标
    • 交互图信息
      • GC之后的堆情况分析
      • GC过程的持续时间分析
      • GC暂停时间分析
        • 缺失的数据问题
      • 回收的容量分析

前言

最近在进行GC的相关调优和问题排查,进行了一个全用例的场景压测,可以抽象为5W用户连接,500QPS并发,然后持续大致24个小时。随后进行一些分析,并找出其中可能存在的问题,以及可以优化的方向。

GC信息

在这里插入图片描述

参数配置信息

-Xms12G -Xmx12G -Xmn4G -XX:MetaspaceSize=300M -XX:SurvivorRatio=10 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSMaxAbortablePrecleanTime=500 -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=50 -XX:+UseCMSInitiatingOccupancyOnly  -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/log/gc/gc.log -XX:ErrorFile=/data/log/error/error.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/log/heap/heap_hprof.bin  -Dfile.encoding=UTF-8

可以看到幸存者区大小为350M左右,eden区为3.5G左右,每秒大约有600M的对象在eden分配,然后满了进行young gc,但是幸存区只有30M左右,利用率10%左右很低,而老年代了在增加,可以看到老年代会增加1M左右内存,说明有每6秒1m左右进入老年代,而默认是15次回收还在的话就晋升,说明有1M的对象生命周期超过了90s,大致这么个情况,当然看GC具体日志是比较直接一种做法,但是太多的话就效率低了,所以把gc文件下下来,去gceasy上进行分析。

gceasy分析

内存使用

在这里插入图片描述

GC时间指标

在这里插入图片描述

交互图信息

GC之后的堆情况分析

发现还是挺稳定的,貌似不存在内存泄露,但是第4个之前有2个时间段好像有点问题,貌似没有GC触发
在这里插入图片描述

GC过程的持续时间分析

可以看到有2个时间段的young gc是空的,这个也符合上面那张图的问题:
在这里插入图片描述

GC暂停时间分析

也是有2段时间是缺失的
在这里插入图片描述

缺失的数据问题

从上面的GC过程的持续时间以及暂停时间来看,确实是有2段时间是没有数据的,那就有2种猜想:

  • 是否那段时间没有请求了,网络出问题了,或者施压机出问题了,还是服务器有问题
  • 是不是gc日志有缺失,磁盘满了么

于是先排查那段时间的监控情况,以及施压机是否有请求,查看压测报告,发现请求和响应一直很稳定,也没有报错,那不是第一种猜想的原因
在这里插入图片描述
再看ELK日志,发现确实没有记录啊,这个很奇怪了,于是就怀疑是不是统计的问题
在这里插入图片描述

于是看了下日志,确实少了部分数据,而且可以发现日志好像有点问题,没写完,中间断了,然后又接上了,于是怀疑磁盘是不是满了,后来运维又清理了
在这里插入图片描述
然后看了下警报,确实有,当时没注意,又跟运维确认了下,他确实是删过了,而且ELK就是根据日志上传的,所以ELK上也没有,最后发现我们的日志太多了,可能要调整下级别了,不过正常情况下压力没那么大,日志滚动删除,应该会好点。
在这里插入图片描述

回收的容量分析

这个就有意思了,发现好像有异常,在0点和13点附近居然有young gc回收,而且回收的数量很小。
在这里插入图片描述
放大来看看,确实是有,而且回收很小一部分,这个就很奇怪,到时候得看看日志详细:
在这里插入图片描述
查看日志,发现出现了这个GCLocker Initiated GC
在这里插入图片描述
然后又看了下其他的点:
在这里插入图片描述
也是这个问题:
在这里插入图片描述

由于篇幅原因,下一篇继续说这个问题。

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限。

最后

以上就是无语超短裙为你收集整理的GC问题排查实战一前言GC信息gceasy分析的全部内容,希望文章能够帮你解决GC问题排查实战一前言GC信息gceasy分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部