JVM之性能监控与故障处理
2016-06-19 本文已影响37人
迷夏湖
给一个系统定位问题的时候,知识,经验是关键基础,数据是一依据,工具是运用知识处理数据的手段。数据包括:运行日志,异常堆栈,gc日志threaddump/javacore,heapdump等。jdk自带一些监控工具。
1. jps 虚拟机进程状态工具。功能类似ps,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类函授所在的名称,以及这些进程的本地虚拟机的唯一id LVMID。
jps [ options ] [ hostid ]
JVM之性能监控与故障处理2. jstat 虚拟机统计信息监视工具。可以显示本地或远程虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据。
jstat [ option vmid [intervals[s|ms] [count] ] ]
JVM之性能监控与故障处理3. jinfo java配置信息工具。实时查看和调整虚拟机的各项参数。
jinfo [ option ] pid
4. jmap java内存映像工具。生成堆存储快照heapdump或dump文件。
5. jhat 虚拟机堆存储快照分析工具。与jmap搭配使用,分析jmap生成的堆存储快照。
6. **jstack java堆栈跟踪工具**。 用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机每一条线程正在执行的方法堆栈的集合。定位线程出现长时间的停顿的原因,如线程间死锁,死循环,请求外部资源等待等。
通过jstack查看各个线程的调用堆栈,可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。
jstack [ F | l | m ] vmid
可视化工具
1. jconsole java监控与管理控制台
2. VisualVM 多合一故障处理工具