基础故障处理工具

jps:虚拟机进程状况工具

jps可以列出正在运行的虚拟机进 程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一 ID(LVMID,Local Virtual Machine Identifier)

命令格式

jps [options] [hostid]

执行案例

image-20220210205146436

主要选项

选项 作用
-q 只输出LVMID,省略主类的名称
-m 输出虚拟机进程启东市传递给主类main()函数的参数
-l 输出主类的全名,如果进程执行的是JAR包,则输出JAR的路径
-v 输出虚拟机进程启动时的JVM参数

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

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

命令格式

jstat [option vmid [interval[s|ms] [count ]] ]

例子

jstat -gc 9924 250 25

每250 毫秒查询一次进程9924垃圾收集状况,一共查询20次

image-20220210205846919

jstat的主要选项

image-20220210210104893

image-20220210210218821

jinfo: Java配置信息工具

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

命令格式

jinfo [option] pid

例子查询CMSInitiatingOccupancyFraction参数值

image-20220210210455440

jmap:Java内存映像工具

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

map的作用并不仅仅是为了获取堆转储快照,它还可以查询finalize执行队列、Java堆和方法区的

详细信息,如空间使用率、当前用的是哪种收集器等。

命令格式

jmap [ option ] vmid

image-20220210210825073

jhat:虚拟机堆转储快照分析工具

JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来分析jmap生成的堆转储快照。

jstack:Java堆栈跟踪工具

jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者 javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的 目的通常是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间挂 起等,都是导致线程长时间停顿的常见原因。线程出现停顿时通过jstack来查看各个线程的调用堆栈, 就可以获知没有响应的线程到底在后台做些什么事情,或者等待着什么资源。

命令格式

jstack [ option ] vmid

主要选项

image-20220210211123180

参考资料

《深入理解Java虚拟机》

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐