分析内存泄漏问题

分析内存泄漏问题

频繁GC问题或内存溢出问题

  1. 使用jps查看线程ID
  2. 使用jstat -gc 3331 250 20 查看gc情况,一般比较关注PERM区的情况,查看GC的增长情况。
  3. 使用jstat -gccause [PID]:额外输出上次GC原因
  4. 使用jmap -dump:format=b,file=heapDump 3331生成堆转储文件
  5. 使用jhat或者可视化工具(Eclipse Memory Analyzer 、IBM HeapAnalyzer)分析堆情况。
  6. 结合代码解决内存溢出或泄露问题。
jstat -gc 3331 250 20

生成堆转储文件

jmap -dump:format=b,file=[导出文件名] [PID]
jmap -dump:format=b,file=[导出文件名] [PID]
jmap -dump:format=b,file=iot08-TCP0506Dump 426184

会在当前目录下生产堆栈文件

IBM HeapAnalyzer

官网:

https://www.ibm.com/support/pages/ibm-heapanalyzer

dowmload:

https://public.dhe.ibm.com/software/websphere/appserv/support/tools/HeapAnalyzer/ha457.jar

下载 ha*.jar 后运行
java -Xmx2g -jar ha*.jar

-Xmx2G 是加载的 堆栈文件太大, 内存不够使用

选择接在 上面的堆转储文件 heapDump(例子) 的文件

生成的堆转储文件 也可以使用 JProfiler 进行分析
后缀需要改成 .hprof
官网:
https://www.ej-technologies.com/products/jprofiler/overview.html

JProfiler 帮助文档:
https://www.ej-technologies.com/resources/jprofiler/v/12.0/help_zh_CN/doc/main/memory.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值