1 JDK的命令行工具

1.1 jps 虚拟机进程状况工具

可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。虽然功能比较单一,但它是使用频率最高的JDK命令行工具,以为其他的JDK工具大多需要输入它查询到的LVMID来确定要监控哪一个虚拟机进程。

1.2 jstat 虚拟机统计信息监视工具

jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾回收、JIT编译等运行数据,在没有GUI图形界面,只提供纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。

例如 jstat -gc 23856 250 20,即每250毫秒查询一次进程23856的垃圾收集情况,一共查询20次。

1.3 jinfo Java配置信息工具

jinfo (Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。

1.4 jmap Java内存映像工具

jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为Heapdump或dump文件)。

jmap 的作用并不仅仅是为了获得dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。

和jinfo命令一样,jmap不少功能在Windows下都是受限的。

1.5 jstack Java堆栈跟踪工具

jstack (Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程长时间出现停顿的原因,如线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做了什么事情,或者在等待什么资源。

jstack -l 23856

2 JDK的可视化工具

JDK中除了提供大量的命令行工具外,还有两个强大的工具,JConsole和VisualVM。

2.1 JConsole Java监视与管理控制台

JConsole (Java Monitoring and Managerment Console)是一种基于JMX的可视化监视、管理工具。

2.1.1 启动JConsole

通过JDK/bin目录下的“jconsole.exe”启动。

2.1.2 内存监控

内存页相当于可视化的jstat命令,用于监视受收集器管理的虚拟机内存(Java堆和永久代)的变化趋势。

执行GC后有明显的下降

2.1.3 线程监控

线程标签相当于可视化的jstack命令,遇到县城停顿时可以使用这个标签进行监控分析。

2.2 VisualVM多合一故障处理工具

VisualVM(All-in-One Java Troubleshooting Tools)是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序,并且可预见在未来一段时间内都是官方主力发展的虚拟机故障处理工具。官方在VisualVM的软件说明中写上了All-in-One的描述字样,预示着它除了运行监视、故障处理外,还提供了很多其他方面的功能。

在工具-> 插件 下安装插件

一样可以查看对应的信息。


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注