1
环境信息
arthas-boot.jar
或者as.sh
的版本: 3.6.9- Arthas 版本: 3.6.9
- 操作系统版本: Linux version 5.4.0-136-generic (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1))
- 目标进程的JVM版本: Oracle JDK 1.8, VM-VERSION=25.151-b12
- 执行
arthas-boot
的版本: Oracle JDK 1.8, VM-VERSION=25.151-b12(同上)
- 执行
java -jar arthas-boot.jar
然后 attach 目标进程 - 执行
memory
查看内存信息 - 执行
heapdump
获取内存 dump(不指定 --live 参数) - 执行
memory
,查看内存信息 - 执行
stop
退出 arthas - 执行
jmap -dump:format=b,file=dump.hprof 1
,获取内存 dump
- 步骤 3 获取的 dump 文件 size 略大于步骤 2 显示的堆内存大小;
- 步骤 3 获取的 dump 文件 size 与步骤 6 获取的 dump 文件 size 相当;
- 步骤 3 获取的内存 dump 文件远小于步骤 2 显示的内存和步骤 6 使用
jmap
获取的dump 文件;
仅老年代内存使用就已经 970 MB,且执行 heapdump 时没有指定 --live 参数不会先进行 FullGC,理论上 dump 文件肯定大于 970MB,实际却只有 457MB。