java进程服务内存占用高,排查解决

2020-12-21  本文已影响0人  小明同学777

1.查看内存占用过高的进程PID

top -c

2.查看内存中存活对象的统计,找出业务相关的类名

jmap -histo:live PID > xxx.log

3.上面简单的统计信息还是没法定位问题类的话,就输出内存明细来分析,下面的命令会输出内存中所有的信息,输出的文件大小和内存大小基本一致,而且会导致内存暂时挂起,谨慎使用。

jmap -dump:live,format=b,file=xxx.hprof PID

4.对dump下来的文件进行分析,文件大小不是很大的话,使用jdk自带的jhat命令即可,输入命令:jhat -J-mx2G -port 7170,该命令可以查看内存占用的对象。
如果文件太大,可以下载到本地使用jdk自带的 jvisualvm 工具进行分析。下面详细讲怎么使用jvisualvm定位内存占用问题。

上一篇 下一篇

猜你喜欢

热点阅读