JVM - jmap工具

2021/09/29 JVM 共 540 字,约 2 分钟
Bob.Zhu

jmap(Memory Map for Java):生成堆转储快照。

手动jmap

jmap 的作用并不仅仅是为了获取 dump 文件,它还可以查询 finalizer 执行队列、Java 堆和永久代的详细信息,如空间使用率、当前使用的是哪种收集器等。和jinfo一样,jmap有不少功能在 Windows 平台下也是受限制的。

示例:将指定应用程序的堆快照输出到桌面。后面,可以通过 jhat、Visual VM 等工具分析该堆文件。

jmap -dump:format=b,file=./heap.hprof 19343
Dumping heap to /home/jyapp/logs/heap.hprof ...
Heap dump file created

生成的dump文件有900M,后续使用jhat分析。

自动jmap

如果不使用 jmap 命令,要想获取 Java 堆转储,可以使用 -XX:+HeapDumpOnOutOfMemoryError 参数,可以让虚拟机在 OOM 异常出现之后自动生成 dump 文件,Linux 命令下可以通过 kill -3 发送进程退出信号也能拿到 dump 文件。

-XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=${目录}

参考资料

文档信息

Search

    Table of Contents