java
2023-05-16
2023-05-16
情操要高尚!成为我们真正荣誉的,是我们自己的心,而不是他人的议论。——席勒
今天发现线上CPU
又百分百了。。。
于是开始使用arthas
排查
1 | curl -O https://arthas.aliyun.com/arthas-boot.jar |
然后选择对应的web
项目
首先我执行了dashboard
命令
发现heap
为百分之九十几的占用,那我直接执行
1 | heapdump --live /tmp/dump.hprof |
然后下载到本地,再下载一个MAT(Memory Analyzer Tool)
进行分析
下载地址:https://www.eclipse.org/mat/downloads.php
我们解压,打开(需要配置java17
环境变量)后点击Open Heap Dump
然后选择我们的hprof
文件
然后报错
点击Details >>
才发现原来是内存不足,我们设置下内存大小
打开MemoryAnalyzer.ini
,修改-Xmx1024m
为合适的大小
这里点击Histogram
查看对象占用
发现fastjson
的JSONArray
占用挺高
以及有个定时任务
于是进行了相关的代码处理,调整了定时任务,更换了fastjson
为hutool-json
之后就好了