深入理解Java虚拟机(五)——JDK故障处理工具

进程状况工具:jps

jps(JVM Process Status Tool)

作用

  • 用于虚拟机中正在运行的所有进程。
  • 显示虚拟机执行的主类名称以及这些进程的本地虚拟机唯一ID。
  • 可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,参数hostid为RMI注册表中注册的主机名

特点

使用频率最高的命令工具,需要通过它来查询进程的ID,从而进行下一步监控。

统计信息监视工具:jstat

jstat(JVM Statistics Monitoring Tool)

作用

  • 用于监视虚拟机各种运行状态信息,可以显式本地或远程虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据。
  • 可以显示堆内各个分区的使用率。

Java配置信息工具:jinfo

jinfo(Configuration Info for Java)

作用

  • 实时查看和调整虚拟机各项参数。
  • 如果想知道未被显式指定的参数的系统默认值,可以通过jinfo的-flag查询。
  • 如果想把虚拟机进程的System.getProperties()的内容打印出来,可以通过-sysprops。
  • 具有运行期修改部分参数值的能力。

Java内存映像工具:jmap

jmap(Memory Map for Java)

作用

  • 用于生成堆转储快照。
  • 还可以查询finalize执行队列、Java堆和方法区的详细信息。

堆转储快照分析工具:jhat

jhat(JVM Heap Analysis Tool)

作用

  • 与jmap搭配使用,用于分析jmap生成的堆转储快照。
  • 内置web服务器,可以用过浏览器查看结果。

特点

一般人不会直接使用jhat来分析快照文件,主要原因:

  • 不会在部署应用程序的服务器上进行直接分析快照,因为这样会浪费本地的计算资源。
  • 该命令分析功能简陋,有其他更全面的工具。

Java堆栈跟踪工具:jstack

jstack(Stack Trace for Java)

作用

  • 用于生成虚拟机当前时刻的线程快照,线程快照就是当前运行的每一条线程执行方法的堆栈集合。
  • 可以用于定位线程出现长时间停顿的原因。

Java监视与管理控制台:JConsole

JConsole(Java Monitoring and Management Console)是一款基于JMX(Java Manage-ment Extensions)的可视化监视、管理工具。它的主要功能是通过JMX的MBean(Managed Bean)对系统进。
行信息收集和参数动态调整。

posted @ 2020-11-05 09:15  lippon  阅读(61)  评论(0编辑  收藏  举报