美文网首页JVM
频繁发生FullGC问题排查手段

频繁发生FullGC问题排查手段

作者: Real_man | 来源:发表于2020-11-01 23:32 被阅读0次

    如题,机器发生频繁FullGC报警,如何定位原因?

    一般现象为CPU飙高,RT增加,另外很可能出现OOM。当碰到这种现象时,如何定位:

    Jmap

    打印heap的概要信息,GC使用的算法,heap(堆)的配置及JVM堆内存的使用情况.

    jmap -heap pid
    

    打印每个class的实例数目,内存占用,类全名信息,VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

    jmap -histo:live pid
    

    输出jvm的heap内容到文件,live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.

    jmap -dump:live,format=b,file=myjmapfile.txt pid
    

    finalizerinfo 打印正等候回收的对象的信息

    jmap -finalizerinfo pid
    

    arthas

    查看当前的jvm进程堆内存状态

    dashboard
    

    watch系统中某个方法,某个属性的值,严重对象当前状态。

    # watch 类全路径  方法名   '属性或者方法的全路径引用'
    watch demo.MathGame primeFactors 'target.illegalArgumentCount'
    # 观察方法的第一个参数值
    watch demo.MathGame primeFactors params[0]
    

    jmap文件分析

    自带的命令分析

    jhat <heap-dump-file>
    

    jvisuvm装入,装入时记得选hprof,有几个不同选项,apps,hprof

    image-20201101232452903

    建议

    • 代码中使用无界队列,如LinkedBlockingQuene一定要注意,最好设置长度限制
    • ThreadLocal用完记得remove对象

    参考

    相关文章

      网友评论

        本文标题:频繁发生FullGC问题排查手段

        本文链接:https://www.haomeiwen.com/subject/vkhpvktx.html