jmap(Memory Map)和jhat(Java Heap Analysis Tool)
jmap用来查看堆内存使用状况,一般结合jhat使用。
1. jmap -permstat -J-64 pid@remote-hostname-or-ip
①-J-64 64位JVM
②@remote-hostname-or-ip 远程服务地址
打印进程的类加载器和类加载器加载的持久代对象信息,输出:类加载器名称、对象是否存活(不可靠)、对象地址、父类加载器、已加载的类大小等信息
2. jmap -heap pid
查看进程堆内存使用情况
jmap -histo[:live] pid
查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象
3. jmap -dump:format=b,file=/tmp/dump.dat pid
jhat -J-Xmx512m -port 9998 /tmp/dump.dat
①-J-Xmx512m 注意如果Dump文件太大,可能需要加上-J-Xmx512m这种参数指定最大堆内存
②可以在浏览器中输入主机地址:9998查看
③dump到服务器上的文件