JVM · Java虚拟机原理 · JVM上语言·框架· 生态系统JVM

JVM 性能监控与故障处理工具

2018-04-12  本文已影响7人  ulyssesss

JDK 中包含一些命令行工具,这些工具能在处理应用程序性能问题、定位故障时发挥很大的作用。

jps

JVM Process Status Tool,用于显示系统内所有的 HotSpot 虚拟机进程。

jps 可以列出正在运行的 JVM 进程,显示 JVM 执行主类及进程的本地虚拟机唯一 ID(与操作系统进程 ID 一致)。

常用选项:

jstat

JVM Statistics Monitoring Tool,用于收集 HotSpot 各方面的运行数据。

可以显示 JVM 进程中的类装载、内存、垃圾收集、JIT 编译等运行数据,格式为

jstat option vmid [interval] [count]

interval 参数为查询间隔,count 参数为查询次数,省略这两个参数则只查询一次。

主要选项:

jinfo

Configuration Info for Java,用于显示虚拟机配置信息,可以实时查看和调整虚拟机各项参数。

jps -v 命令可以查看 JVM 启动时显示指定的参数列表,各项参数的默认值可以通过 jinfo 的 -flag 选项进行查询,还可以通过 -sysprops 选项打印出进程 System.getProperties() 的内容。

jmap

Memory Map for Java,用于生成 JVM 内存转储快照(heapdump文件)。命令格式 jmap [option] vmid ,主要选项:

jhat

JVM Heap Dump Browser,用于分析 heapdump 文件,建立 HTTP / HTML 服务器,可以在浏览器上查看分析结果。

实际工作中一般不使用jhat 来分析 dump 文件,因为通常不会再服务器上直接分析 dump 文件,耗时且消耗资源,功能也相对简陋。

jstack

Stack Trace for Java,用于生成虚拟机线程快照,目的是定位线程出现长时间停顿的原因。常见参数:

JConsole

Java Monitoring and Management Console,基于 JMX 的可视化 Java 监视与管理控制台。

Visual VM

All-in-One Java Troubleshooting Tool,功能强大的运行监视和故障处理程序。不需要被监视程序基于特殊 Agent 运行,对程序的实际性能影响很小。

查看原文

上一篇下一篇

猜你喜欢

热点阅读