JVM-虚拟机性能监控与故障处理工具
JDK的命令行工具
名称 | 主要作用 |
jps | JVM Process Status Tool,显示指定系统内所有的HOTSPOT虚拟机进程 |
jstat | JVM Statistics Monitoring Tool,收集Hotspot虚拟机各方面的运行数据 |
jinfo | Configration Info for Java,显示虚拟机配置信息 |
jmap | Memory Map For Java,生成虚拟机内存转储快照(heapdump文件) |
jhat | JVM Heap Dump Browser,用于分析heapdump文件,他会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果 |
jstack | Stack Trace for Java,显示虚拟机线程快照 |
1:jps:虚拟机进程状况工具-----可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称及进程的本地虚拟机唯一ID
命令格式:jps [ option ] [ hostid ]
2:jstat:虚拟机统计信息监视工具----监视虚拟机各种运行状态的工具
命令格式:jstat [ option vmid [ interval [ s|ms ] [ count ] ] ] 说明:interval和count 代表查询间隔和次数,省略时说明只查询一次
例子:jstat -gc 2764 250 20 : 每250毫秒查询一次进程2764的垃圾收集情况,查询20次
3:jinfo:Java配置信息工具----实时查看和调整虚拟机各项参数,对windows平台只提供了最基本的 -flag 选项
命令格式:jinfo [ option ] pid
4:jmap:内存映像工具----用于生成堆转储快照(heapdump 或 dump文件)
命令格式:jmap [ option ] vmid 说明:Windows下只有-dump 和 -histo选项可用
5:jhat:虚拟机堆转储快照分析工具----与jmap搭配使用,分析jmap生成的堆转储快照 一般不用
6:jstack:Java堆栈跟踪工具----用于生成虚拟机当前时刻的线程快照(threaddump 或 javacore文件)
线程快照:当前虚拟机内每一条线程正在执行的方法堆栈集合,目的是定位线程长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待
格式:jstack [ option ] vmid
7:HSDIS:JIT生成代码反汇编---sun官方推荐的hotspot虚拟机JIT编译代码的反汇编插件,目前不支持windows操作系统
汇编代码示例:
JDK的可视化工具
1:JConsole:Java监视与管理控制平台----可以查看概览、内存、线程、类、VM概要、MBean等信息
2:VisualVM:多合一故障处理工具---提供运行监控、故障处理、性能分析及支持插件扩展功能