情操要高尚!成为我们真正荣誉的,是我们自己的心,而不是他人的议论。——席勒

今天发现线上CPU又百分百了。。。

于是开始使用arthas排查

1
2
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

然后选择对应的web项目

首先我执行了dashboard命令

发现heap为百分之九十几的占用,那我直接执行

1
heapdump --live /tmp/dump.hprof

然后下载到本地,再下载一个MAT(Memory Analyzer Tool)进行分析

image-20230516191621888

下载地址:https://www.eclipse.org/mat/downloads.php

我们解压,打开(需要配置java17环境变量)后点击Open Heap Dump

image-20230516191848848

然后选择我们的hprof文件

然后报错

image-20230516192244421

点击Details >>才发现原来是内存不足,我们设置下内存大小

打开MemoryAnalyzer.ini,修改-Xmx1024m为合适的大小

image-20230516192357448

这里点击Histogram查看对象占用

image-20230516192153243

发现fastjsonJSONArray占用挺高

image-20230516192542168

以及有个定时任务

image-20230516192623117

于是进行了相关的代码处理,调整了定时任务,更换了fastjsonhutool-json之后就好了