欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JVM性能监控和故障处理的指令、工具

程序员文章站 2022-07-10 17:50:31
目录指令jpsjstatjinfojmapjstack可视化故障处理工具jconsoleVisualVM指令jps描述:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID。是最常用的功能之一,因为其它命令需要通过它来查询要监控的虚拟机进程的ID。命令格式:jps [options] [hostid]主要选项:-q 只输出LVMID 省略主类的名称;-m 输出虚...

目录

指令

jps

jstat

jinfo

jmap

jstack

可视化故障处理工具

jconsole

VisualVM


指令

jps

  • 描述:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID。是最常用的功能之一,因为其它命令需要通过它来查询要监控的虚拟机进程的ID。
  • 命令格式:jps [options] [hostid]

JVM性能监控和故障处理的指令、工具

  • 主要选项:

-q 只输出LVMID 省略主类的名称;

-m 输出虚拟机进程启东市传递给主类main函数的参数;

-l 输出主类的名称,如果进程执行的是jar包,输出jar 路径;

-v 输出虚拟机进程启动时的JVM 参数

jstat

  • 描述:jstat可以显示本地或远程(需要远程主机提供RMI支持,jstatd可以很方便的建立远程RMI服务器)虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据。
  • 命令格式:jstat option vmid [interval [s|ms] [count]]

JVM性能监控和故障处理的指令、工具

  • S0:survivor from使用率
  • S1:survivor to使用率,使用了24.26%。
  • E:Eden
  • O:old
  • M:Metaspace
  • YGC:Minor GC的次数
  • YGCT:Minor GC总共耗费的时间
  • FGC:Full GC的次数
  • FGCT:Full GC总共耗费的时间
  • GCT:Minor GC和Full GC总共耗费的时间

 

  • 主要选项:
-class 监视类装载、卸载数量、总空间以及类装载所耗费的时间
-gc 监视 JVM 堆状况,包括 Eden区、两个survivor 区、老年代、永生代等的容量、已用空间、GC时间合计等信息
-gccapacity 监视内容与 -gc 基本相同,但输出主要关注java 堆各个区域使用到的最大、最小空间
-gcutil 监视内容与 -gc 基本相同,但输出主要关注已经使用空间占总空间的百分比
-gccause 与 -gcutil 功能一样,但是会额外输出导致上一次 GC 产生的原因
-gcnew 监视新生代 gc 状况
-gcnewcapacity 监视内容与 -gcnew 基本相同,但输出主要关注新生代已经使用到的最大、最小空间
-gcold 监视老年代 gc 状况
-gcoldcapacity 监视内容与 -gcold 基本相同,但输出主要关注老年代已经使用到的最大、最小空间
-gcpermcapacity 输出永久代已经使用到的最大、最小空间
-compiler 输出JIT 编译器编译过的方法、耗时等信息
-gccompilation 输出已经呗 JIT 编译的方法

jinfo

  • 描述:作用是可以实时查看和调整虚拟机各项参数。
  • 命令格式:jinfo [option] pid
  • 主要选项:

jmap

  • 描述:用来生成堆转储快照(heapdump文件)。
  • 命令格式:jmap [option] vmid

JVM性能监控和故障处理的指令、工具

  • 主要选项:
-dump 生成 JVM 堆存储快照。 格式为: dump:[live,]format=b,file=,其中live参数说明是否只dump 出存活的对象
-finalizeinfo 显示在F-Queue 中等待Finalizer线程执行 finalize 方法的对象,只在 linux/solaris 平台下有效
-heap 显示 JVM 堆详细信息,如使用那种回收器、参数配置、分代情况等。只在 linux/solaris 平台下有效
-histo 显示堆中对象统计信息,包括类、实例数量、合计数量
-permstat 以ClassLoader为统计口径,显示永生代内存状态,只在 linux/solaris 平台下有效
-F 当 JVM 进程对 -dump 指令选项没有响应时,可使用这个选项强制生成dump 快照,只在 linux/solaris 平台下有效

jhat

  • 描述:对jmapdump的快照文件进行分析,并通过html页面展示分析结果。
  • 命令格式:jhat 文件路径
  • 说明:一般很少使用,因为功能相比专门的分析工具比较简陋。

jstack

  • 描述:用于生成虚拟机当前时刻的线程快照(一般称为threaddump文件)。
  • 命令格式:jstack [option] vmid。

JVM性能监控和故障处理的指令、工具

  • 主要选项:
-l 除堆栈外,显示关于锁的附加信息
-m 打印
-F 当 JVM 进程对指令没有响应时,可使用这个选项强制生成 threaddump 快照,只在 linux/solaris 平台下有效

可视化故障处理工具

jconsole

JDK自带的检测工具,可以做到内存监控和线程监控。

VisualVM

JDK9之前都自带的工具,JDK9时不自带,但是仍然可单独下载使用。

功能如下:

  • 显示虚拟机进程以及进程的配置、环境信息(jps、jinfo)。
  • 监视应用程序的处理器、垃圾收集、堆、方法区以及线程信息(jstat、jstack)。
  • dump以及分析堆转储快照(jmap、jhat)。
  • 可能通过插件灵活扩展功能。

JHSDB

JDK9中正式提供的可视化工具。

本文地址:https://blog.csdn.net/qq_34039868/article/details/109639059

相关标签: JVM 开发工具