线上项目CPU,内存都跑满了,怎么调试?

本文讲述了在项目遇到CPU和内存问题时如何使用Arthas进行线上调试。Arthas提供了Web Console、Spring Boot快速集成和Tunnel功能,便于开发者远程诊断和解决问题。通过Web界面和命令行工具,开发者可以分析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、付费专栏及课程。

余额充值