JVM自带性能分析工具介绍——jmap和jhat

来源:互联网 发布:pc数据恢复软件下载 编辑:程序博客网 时间:2024/06/05 15:42

前言

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测,这里我们就简要介绍下这几个命令的作用和使用方法。

命令 作用 jps 基础工具 jstack 查看某个Java进程内的线程堆栈信息 jmap jmap导出堆内存,然后使用jhat来进行分析 jhat jmap导出堆内存,然后使用jhat来进行分析 jstat JVM统计监测工具 hprof hprof能够展现CPU使用率,统计堆内存使用情况

jmap

jmap(Memory Map)用来查看堆内存使用状况,一般配合jhat命令使用。
jmap语法如下:

jmap [option] pid  jmap [option] executable core  jmap [option] [server-id@]remote-hostname-or-ip  

参数信息:
| 参数| 作用|
| ————- |:————-:|
| -permstat | 打印进程的类加载器和类加载器加载的持久代对象信息 |
| -heap | 查看进程堆内存使用情况:包括使用的GC算法、堆配置参数和各代中堆内存使用 |
| -histo[:live] | 查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象 |
| -dump:format=b,file=dumpFileName | 用jmap把进程内存使用情况dump到文件中,再用jhat分析查看 |
例子:

jhat

jhat用来对上面dump出来的内容进行分析,他会在服务器上开启一个端口作为web访问的入口,然后将解析出来的数据已web的形式提供访问,这对于某些服务器来说可能不允许其开启端口提供访问。所以也有其他工具可以分析jmap生成的dump文件,比如eclipse里面的插件。

参数 作用 -port 用以指定端口 -J-Xmx512m 指定最大堆内存,以防dump文件太大无法成功解析

这里借用网上其他前辈的图

[esv@storm-master Desktop]# jhat -port 8888 /home/esv/dump.dat   Reading from /home/esv/dump.dat...  Dump file created Sat Aug 01 04:21:12 PDT 2015  Snapshot read, resolving...  Resolving 411123 objects...  Chasing references, expect 82 dots..................................................................................  Eliminating duplicate references..................................................................................  Snapshot resolved.  Started HTTP server on port 8888  Server is ready. 

然后在浏览器访问:
这里写图片描述

阅读全文
0 0
原创粉丝点击