线上项目CPU,内存都跑满了,分析工具(Arthas)

本文讲述了在遇到线上项目CPU和内存满载问题时,如何利用Arthas进行诊断和排查。Arthas提供了Web Console界面、SpringBoot快速集成和Tunnel集成功能,便于开发者在线调试和管理服务。通过Arthas命令行工具,可以实时查看和分析JVM状态,解决并发导致的对象过度创建、下游服务接口延迟等问题。
摘要由CSDN通过智能技术生成

记得第一次当整个电商项目负责人的时候,在使用量高峰期时,运维的同事突然跑过来说,xx服务的某台机器的CPU,内存暴了(OOM了),赶紧想办法怎么做。当时的心情既高兴,又紧张。高兴的是产品真的有使用在使用了,有价值了;紧张的是出问题,要怎么解决?

出现这种问题有2种情况,一种是直接服务程序终止,一种是服务程序在还在(线程通过PS命令查看还在运行),但无法对外提供服务。

当然出现这种情况,都是第一时间让运维同事将nginx上的upstream对应的IP注释掉,不让流量在进来到故障的机器上。

对于第一种程序直接终止的,在启动的命令中,加上

-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=${HeapDumpPath} \

输出当时的jvm内存镜像,然后通过jconsole来进行分析。

最头痛的是第二情况,服务程序还在运行,但是CPU/内存都满了,这种也就是假死,通过日志文件啥的,很难分析到问题,在纠结的时候,有同事看到了Arthas,我靠,可以直接在线debug,于是乎就搞起来,但当时(三年前吧)只是命领行格式。当初通过

- dashboard
- thread
- jvm
- memory
- trace

等几个命令,就可以去分析问题。而最终的问题原因,都是程序没写好(哇〜〜 又写bug了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值