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

279 篇文章 1 订阅
162 篇文章 1 订阅

如题,机器发生频繁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

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

建议

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值