JDK 命令行工具
这些命令在 JDK 安装目录下的 bin 目录下:
- jps (JVM Process Status): 类似 UNIX 的 ps 命令。用户查看所有 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息;
- jstat( JVM Statistics Monitoring Tool): 用于收集 HotSpot 虚拟机各方面的运行数据;
- jinfo (Configuration Info for Java) : Configuration Info forJava,显示虚拟机配置信息;
- jmap (Memory Map for Java) :生成堆转储快照;
- jhat (JVM Heap Dump Browser ) : 用于分析 heapdump 文件,它会建立一个 HTTP/HTML 服务器,让用户可以在浏览器上查看分析结果;
- jstack (Stack Trace for Java):生成虚拟机当前时刻的线程快照,线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。
检查线程死锁
**jps:**显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一 ID(Local Virtual Machine Identifier,LVMID)。jps -q :只输出进程的本地虚拟机唯一 ID。
jps -l:输出主类的全名和正在运行的进程id
![JDK监控和故障总结_第1张图片](http://img.e-com-net.com/image/info8/4ce06838afa946b8a94e6d918536e30e.jpg)
**jstack *生成虚拟机当前时刻的线程快照。
生成线程快照的目的主要是定位线程长时间出现停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者在等待些什么资源。
![JDK监控和故障总结_第2张图片](http://img.e-com-net.com/image/info8/5200a97cb4a84b61925b0f8efdbc0209.jpg)
查看JVM参数
jinfo:jinfo + -flag + 参数名 +进程号
![JDK监控和故障总结_第3张图片](http://img.e-com-net.com/image/info8/a4c9aa9fab3f46f29d176095fb5835a8.jpg)