JDK性能监控工具

JDK命令行工具
jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程,可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态

jps [options] [hos tid]
列出正在运行的虚拟机进程,显示执行主类,以及虚拟机的唯一ID(Local Virtual Machine Identifier,LVMID),启动参数等

jstat:JVM Statisitcs Monitoring Tool,用于收集HtoSpot虚拟机各方面的运行数据

jstat [generalOption | outputOptions vmid [interval[s|ms][count]]]
可以显示本地或远程虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据。运行期定位虚拟机性能问题的首选

jinfo:Configuration Info for Java,显示虚拟机配置信息

jinfo [options] pid
实时查看和调整虚拟机的各项参数

jmap:Memory Map for Java,生成虚拟机内存转储快照(heapdump文件)

jmap [option] vmid
与 -XX:+HeapDumoOnOutOfMemoryError参数类似。还可以查询finalize执行队列、Java堆、永久代的信息(空间使用率,收集器类型)

jhat:JVM Heap Dump Browser,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果

与jmap搭配使用,一般不直接使用jhat来,而是使用专业的Eclipse Memory Analyzer或者IBM HeapAnalyzer等

jstack:Stack Trace for Java,显示虚拟机的线程快照

jstack [option] vmid
用于生成虚拟机当前时刻的线程快照(threaddump),线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,定位线程长时间出现停顿的原因,查看没有响应的线程到底在后台做什么,等待什么资源
也可以使用Thread.getAllStackTraces()方法用于获取虚拟机中所有线程的StackTraceElement对象

JDK可视化工具
JConsole:Java监视与管理平台

基于JMX的可视化监视和管理的工具。被监视的虚拟机需要使用可管理的模式启动,启动时设置 com.sun.management.jmxremote
使用MBean标签监控和管理MBean、监控内存、开闭虚拟机的详细跟踪

VisualVM:多合一故障处理工具

囊括了jstat、JConsole、jstack、jmap、jinfo工具的功能。可以生成和分析海量数据,跟踪内存泄漏,监控垃圾回收,执行内存和CPU分析

你可能感兴趣的:(JDK性能监控工具)