arthas 排查内存溢出_arthas 进行内存溢出分析

有做过测试的同学,应该或多或少都见过 OOM 的错误吧

这种错误日志见过吗?相信很多人,都很熟悉,老朋友了。

但是,这种问题,我们怎么才能准确定位到问题根源呢?

很多测试朋友可能就望而却步了,说这是开发人员的事情,让开发人员去排查好了。你如果是初、中级测试工程师,你可以这样说,但是,如果你是高级测试工程师,你是性能测试工程师,哪,恐怕就是你不负责任了。

当你深入学习了之后,你可能发现 jvm 自带的 jmap 可以查看这种内存溢出问题,但是,当你真正去用的时候,你又会发现,你想用一个 jmap 来抓取内存溢出的包,估计你得等到海枯石烂,天荒地老,时间非常长,而一旦中间中断,你这次抓包就失败了。

今天给大家介绍一个神器——arthas,它是阿里开源的一款 jvm 分析工具。

现在我有个项目,就有内存溢出问题

首先,启动项目,再启动 arthas,查看到这个项目堆使用率约 26%

接下来,我们用 jmeter 调用这个项目的接口,进行性能测试,发现马上就出现了“Handler processing failed; nested exception is java.lang.OutOfMemoryError: Java heap space” 错误。

这时候,我们从 arthas 中,可以看到该项目的堆使用率瞬速达到 83% 以上

出现这样,肯定就是出现了 OOM 问题了,此时,我们只需要按一下'q'键, 然后输入’heapdump‘ 回车

就会看到正在生成一个 hprof 文件,稍等 1 分钟左右,就生成结束,就可以去 Tomcat 的 temp 路径下查找这个文件

把文件下载下来,然后用 MAT 工具打开

这里就详细的看到了具体的类,你可以把这个 hprof 文件给开发,或者把这个定位到具体类的截图给开发,接下来,就真正式开发忙活的时候了。

是不是 忒简单了,你掌握了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值