1、jmap
map 一般可用于:
jmap能够打印给定Java进程、核心文件或远程DEBUG服务器的共享对象内存映射或堆内存的详细信息
内存监控
分析对象内存
怎么用?
jmap 相关命令:
可通过 jmap --help 查看
jmap [option] :连接运行的进程 ,分析内存情况
jmap [option] <executable :分析 core dump文件
jmap [option] [server_id@] :连接到远程的服务器进行分析
jmap -help / java -h : 查看帮助信息
1、jmap [option]
**jmap [option] **
pid: 可通过 jps 或者 ps 获得
示例如上面 示例图 一样,用ps 查询到java 的进程号 25488 ,然后 jmap 25488 查看到当前进程的相关信息
2、jmap [option] <executable
jmap [option] <executable
executable: 生成核心转储的Java可执行文件。
core: 要打印配置信息的核心文件
3、jmap [option] [server_id@]
server-id: 当很多debug服务在远程跑的时候,这个服务的唯一 ID
remote-hostname-or-IP: 远程服务的IP或者hostname
4、[option]
-dump: :生成Java堆快储快照,如下
live:仅将存活得对象dump出
format:编码格式
file :生成得文件名称
-finalizerinfo :显示出等待执行 finalize方法得对象
-heap : 显示Java堆详细信息
-histo[:live] :显示堆中对象的详细信息,如果加了live,只显示 存活 得对象信息
-clstats :显示出加载器静态对象
常用命令:
jmap [pid] # 查看具体情况
jmap -dump:live,format=b,file=xxx.xxx [pid] #将当前Java进程的内存占用情况导出来
jmap -histo:live [pid] >a.log # 显示 存活 得对象信息
jmap -finalizerinfo [pid] # 查看 等待执行finalize 方法的数量
jmap -heap [pid] # 堆摘要信息