jmap是JDK中提供的一个用来监视进程运行中的jvm物理内存的占用情况的工具。该进程内存内,所有对象的情况,例如产生了哪些对象,对象数量。当系统崩溃时,jmap 可以从core文件或进程中获得内存的具体匹配情况,包括Heap size, Perm size等。

使用jmap会影响线上运行的应用,所以尽量不要在线上执行此命令。

$  jmap -histo pid|head -n 10            查看前10位

$  jmap -histo pid | sort -k 2 -g -r       查看对象数最多的对象,按降序输出

$  jmap -histo pid | sort -k 3 -g -r        查看内存的对象,按降序输出

通过这三个命令,我们可以很清楚的看到当前进程中对象的大小及个数,从而辅助我们进行分析

 

使用jmap把堆信息导出,并使用可视化工具mat分析

$ jmap -dump:format=b,file=test.dump   ${pid}

 

 

Java常用分析工具之jmap

https://www.bo56.com/java%E5%B8%B8%E7%94%A8%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E4%B9%8Bjmap/

 

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

https://cloud.tencent.com/developer/article/1543603?from=information.detail.jstack%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8

 

三个实例演示 Java Thread Dump 日志分析

https://www.cnblogs.com/zhengyun_ustc/archive/2013/01/06/dumpanalysis.html

 

 

可视化在线内存分析工具(Java Memory Head Dump Analyzer Tool)

https://blog.csdn.net/weixin_30484149/article/details/112693697

https://heaphero.io/index.jsp

 

1. 为方便上传,可先将dump文件压缩成 zip 或者 gz 格式

2. 可将分析结果导出成PDF,便于下载分析

 

 

 

How to fix ?

To see our recommendations, please purchase Enterprise Edition.

 

 

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐