美文网首页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问题排查手段

    如题,机器发生频繁FullGC报警,如何定位原因? 一般现象为CPU飙高,RT增加,另外很可能出现OOM。当碰到这...

  • 学习了!频繁发生FullGC问题排查手段

    如题,机器发生频繁FullGC报警,如何定位原因? 一般现象为CPU飙高,RT增加,另外很可能出现OOM。当碰到这...

  • 系统频繁full gc问题排查

    系统频繁full gc问题排查 fullgc的原因 程序执行了System.gc(); 执行了jmap命令; 大对...

  • 频繁FullGC怎么排查?

    这种问题最好的办法就是结合有具体的例⼦举例分析,如果没有就说⼀般的分析步骤。发⽣FGC有可能是内存分配不合理,⽐如...

  • 线上FullGC频繁的排查

    问题 前段时间发现线上的一个dubbo服务Full GC比较频繁,大约每两天就会执行一次Full GC。 Full...

  • 《Java 虚拟机原理》7.4 精选 —— FullGC 篇

    FullGC 常见问题思考Q1:现网系统发生频繁 FullGC (约每10分钟一次),登陆机器发现 JVM 参数只...

  • CMS堆外内存泄露案例2

    问题描述 线上生产机器fullgc很频繁几乎一分钟一次,younggc确无。 问题分析 fullgc频繁第一反应是...

  • 线上GC异常排查

    线上GC异常排查 1.现象 最近去线上看了下gc情况,发现出现频繁的fullGC。问题如下图: 然后查看了下GC原...

  • JVM的性能监控和故障处理

    如何查看JVM的性能参数,发生频繁的FULLGC该如何排查? 性能监控和故障处理是建立在虚拟机数据的基础上的,数据...

  • Java Metaspace OOM问题分析

    问题描述: 系统上线发生FullGC 定位过程: 1、查看zabbix监控找到FullGC时间点;2、根据时间点搜...

网友评论

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

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