美文网首页Java基础知识+Java虚拟机
JDK监控和故障处理工具

JDK监控和故障处理工具

作者: 简楼 | 来源:发表于2021-04-09 19:04 被阅读0次

前言

为了便于我们分析JVM虚拟机性能与诊断故障,java自带了命令行工具;

JDK的命令行工具

名称 全名 功能
jps JVM Process Status 显示指定系统的所有的虚拟机进程
jstat JVM Statistics Monitoring Tool 用于收集虚拟机各方面的运行数据
jinfo Configuration Info for Java 显示虚拟机配置信息
jmap Memory Map for Java 生成虚拟机的内存转储快照(heapdump文件)
jhat JVM Heap Dump Browser 用于分析heapdump文件
jstack Stack Trace for Java 显示虚拟机的线程快照

jps 虚拟机进程状况工具

jps : 显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一 ID;
jps -q :只输出进程的本地虚拟机唯一 ID;
jps -l:输出主类的全名,如果进程执行的是 Jar 包,输出 Jar 路径;
jps -v:输出虚拟机进程启动时 JVM 参数;
jps -m:输出传递给 Java 进程 main() 函数的参数;

jstat 监视虚拟机各种运行状态信息

jstat(JVM Statistics Monitoring Tool) 使用于监视虚拟机各种运行状态信息的命令行工具;
可以显示本地或者远程(需要远程主机提供 RMI 支持)虚拟机进程中的类信息、内存、垃圾收集、JIT 编译等运行数据;

在没有 GUI,只提供了纯文本控制台环境的服务器上,它将是运行期间定位虚拟机性能问题的首选工具;

jstat -class vmid :显示 ClassLoader 的相关信息;
jstat -compiler vmid :显示 JIT 编译的相关信息;
jstat -gc vmid :显示与 GC 相关的堆信息;
jstat -gccapacity vmid :显示各个代的容量及使用情况;
jstat -gcnew vmid :显示新生代信息;
jstat -gcnewcapcacity vmid :显示新生代大小与使用情况;
jstat -gcold vmid :显示老年代和永久代的信息;
jstat -gcoldcapacity vmid:显示老年代的大小;
jstat -gcpermcapacity vmid :显示永久代大小;
jstat -gcutil vmid :显示垃圾收集信息;

加上 -t参数可以在输出信息上加一个 Timestamp 列,显示程序的运行时间

jinfo 实时地查看和调整虚拟机各项参数

jinfo vmid :输出当前 jvm 进程的全部参数和系统属性 (第一部分是系统的属性,第二部分是 JVM 的参数);
jinfo -flag name vmid :输出对应名称的参数的具体值;

使用 jinfo 可以在不重启虚拟机的情况下,可以动态的修改 jvm 的参数:
jinfo -flag [+|-]name vmid 开启或者关闭对应名称的参数

jmap 生成堆转储快照

jmap(Memory Map for Java)命令用于生成堆转储快照;

如果不使用 jmap 命令,要想获取 Java 堆转储,可以使用 “-XX:+HeapDumpOnOutOfMemoryError” 参数,可以让虚拟机在 OOM 异常出现之后自动生成 dump 文件,Linux 命令下可以通过 kill -3 发送进程退出信号也能拿到 dump 文件。

jmap 的作用并不仅仅是为了获取 dump 文件,它还可以查询 finalizer 执行队列、Java 堆和永久代的详细信息,如空间使用率、当前使用的是哪种收集器等。和jinfo一样,jmap有不少功能在 Windows 平台下也是受限制的。

jhat 分析 heapdump 文件

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

jstack 生成虚拟机当前时刻的线程快照

线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合;
生成线程快照的目的主要是定位线程长时间出现停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者在等待些什么资源。

相关文章

网友评论

    本文标题:JDK监控和故障处理工具

    本文链接:https://www.haomeiwen.com/subject/dcdwkltx.html