jmap命令:
1.进入服务器JDK的bin目录:usr/java/jdk1.6.0_13/bin/
2.执行命令 jmap -F -dump:format=b,file={path} {pid}
path:文件路径和文件名;
pid:表示查看哪个进程
3.从服务器下下载file文件,然后利用本地JDK工具打开查看;
jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等
命令格式
jmap [options] pid
-dump:[live,]format=b,file=<filename> --dump堆到文件,live指明是活着的对象,file指定文件名
因为在dump:live前会进行full gc,因此不加live的堆大小要大于加live堆的大小
-finalizerinfo 打印等待回收对象的信息
-heap 打印堆总结
-histo[:live] 打印堆的对象统计,包括对象数、内存大小等等
-permstat 打印java堆perm区的classloader统计
-F 强制,在jmap -dump或jmap -histo中使用,如果pid没有相应的回复
-J 提供jvm选项,如:-J-Xms256m