jmap:是JDK自带的内存映像工具。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。以二进制输出成文本。可以使用jmap生成Heap Dump。
jhat:j也是JDK内置的工具之一。主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。使用jmap等方法生成java的堆文件后,使用jhat对其进行分析。
jmap命令的常用参数及含义:
1、-heap
说明:命令格式jmap -heap <pid>,打印java堆的配置情况和使用情况,还有使用的GC算法。
举个栗子:jmap -heap 20532

上图中 Parallel GC表明使用的并行标记回收;
Heap configuration(堆配置):
此命令得到的结果是静态的,只是某一时刻heap的使用情况
Heap Configuration:
MinHeapFreeRatio = 0 #最小堆使用比例
MaxHeapFreeRatio = 100 #最大堆使用比例
MaxHeapSize = 536870912 (512.0MB) #最大堆空间大小
NewSize = 178257920 (170.0MB) #新生代空间大小
MaxNewSize = 178257920 (170.0MB) # 最大新生代空间大小
OldSize = 358612992 (342.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
2、-histo[:live]
说明:打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量。
举个栗子:jmap -histo:live 20532

如果对象信息太多,也可以用以下两种方式查看
①加less逐步看:jmap -histo:live 20532 | less;
②将对象信息输出到一个文件中查看:jmap -histo:live 20532 > ../logs/test001.txt,执行命令后,把输出的内容重定向到一个文件中,然后再打开文件查看也可以
3、-dump:[live,]format=b,file=
说明:使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件。
举个栗子:jmap -dump:format=b,file=outfile 1853,即将1853这个进程的堆内存(heap)输出到outfile文件。
可以用下面两种方式分析改文件:
①使用内存分析工具MAT(Memory Analysis Tool)去打开文件分析;
②用jhat (Java Heap Analysis Tool,java虚拟机自带的一种虚拟机堆转储快照分析工具),能够以图像的形式直观的展示当前内存是否有问题。
MAT使用此处略过
4、下面看一下使用jhat的使用:
[root@frank2logs]# jmap -dump:live,format=b,file=jj1.bin 3432 #黑色斜体部分不允许有空格
Dumping heap to /usr/local/tomcat1/logs/jj1.bin ...
Heap dump file created
[root@frank2logs]#jhat -J-mx1024m jj1.bin #用jhat分析刚才Dump的堆信息文件
Reading from jj1.bin...
Dump file created Sat Dec 05 15:57:21 CST 2015
Snapshot read, resolving...
Resolving 182676 objects...
Chasing references, expect 36 dots....................................
Eliminating duplicate references....................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
出现上述信息后,在浏览器中打开http://192.168.0.98:7000/(填写自己实际用的地址),出现如下信息:

网友评论