天天看点

JVM快速找出耗内存大对象

1.找到进程号 ,使用top命令查看应用的系统的整体负载

JVM快速找出耗内存大对象

load average:

 1.单核CPU, 数字在0.00-1.00之间正常

 0.00-1.00        之间的数字表示此时路况非常良好,没有拥堵,车辆可以毫无阻碍地通过。

1.00  表示道路还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化。

1.00以上 表示路况不太好了,这种情况你必须进行检查了。

2.多核CPU - 多车道      数字/CPU核数 在0.00-1.00之间正常

三个数字分别代表1分钟,5分钟,15分钟 

KiB Mem 和KiB Swap如果没有这两行 键入m会显示出这两行

2.执行如下命令: jmap -histo:live 10293| head -20 查看进程中占用资源最大的前20个对象

JVM快速找出耗内存大对象

3.如果还找不出来就只有使用eclipse的MAT工具进行分析

①:使用jmap生成快照文件

jmap -dump:live,format=b,file=a.hprof pid

②:下载MAT  使用MAT打开快照文件进行分析

如果是在程序的JVM参数中设置了

JVM快速找出耗内存大对象

这两个参数可以直接 查看OOM日志

参考文章

 https://blog.csdn.net/zhangchenglikecc/article/details/52103737

  https://www.jianshu.com/p/931384b89c4d

https://blog.csdn.net/dickzhu/article/details/84920297

继续阅读