文章目录
- 1.jps(JVM Process Status Tool)列出正在运行的虚拟机进程
- 2.jstat(JVM Statistics Monitoring Tool)监视虚拟机各种运行状态信息的命令行工具
- 3.jinfo(Configuration Info for Java)实时的查看和调整虚拟机各项参数
- 4.jmap(Memory Map for Java)生成堆转储快照
- 5.jhat(JVM Heap Analysis Tool)分析jmap生成的堆转储快照
- 6.jstack(Stack Trace for Java)生成虚拟机当前时刻的线程快照
- 7.jconsole(Java Monitoring and Management Console)可视化监视、管理工具
1.jps(JVM Process Status Tool)列出正在运行的虚拟机进程
-
作用:列出正在运行的虚拟机进程,并显示虚拟机执行主类(main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID
-
指令
jps -l # 输出主类的全名,如果进程执行的是jar包则输出jar路径 jps -v # 输出虚拟机进程启动时JVM参数
2.jstat(JVM Statistics Monitoring Tool)监视虚拟机各种运行状态信息的命令行工具
-
作用:用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具
-
指令
jstat -gc 14607 250 3 # 14607是进程id,250表示250毫秒打印一次,3表示一共打印3次 S0C 第一个幸存区大小 S1C 第二个幸存区大小 S0U 第一个幸存区使用大小 S1U 第二个幸存区使用大小 EC 伊甸园区大小 EU 伊甸园区使用大小 OC 老年代大小 OU 老年代使用大小 MC 方法区大小 MU 方法区使用大小 CCSC 压缩类空间大小 CCSU 压缩类空间使用大小 YGC 新生代垃圾回收次数 YGCT 新生代垃圾回收消耗时间 FGC 老年代垃圾回收次数 FGCT 老年代垃圾回收消耗时间 GCT 垃圾回收消耗总时间
3.jinfo(Configuration Info for Java)实时的查看和调整虚拟机各项参数
-
作用:实时的查看和调整虚拟机各项参数。使用jps -v命令可以查看虚拟机启动时显示指定的参数列表,但如果想知道未被显示指定的参数的系统默认值,除了去找资料外,就只能使用info -flag进行查询
-
指令
jinfo -flags 14607
4.jmap(Memory Map for Java)生成堆转储快照
-
作用:用于生成堆转储快照。如果不使用jmap命令,想要获取Java堆转储快照,还有一些比较“暴力”的手段:-XX:+HeapDumpOnOutOfMemoryError参数可以让虚拟机在OOM异常出现之后自动生成dump文件,用于系统复盘环节
-
指令
jmap -dump:format=b,file=/root/a 14607 # 生成Java堆转储快照 jmap -histo 14607 | more # 显示堆中对象统计信息,包括类、实例数量、合计容量 B:byte C:char I:int
5.jhat(JVM Heap Analysis Tool)分析jmap生成的堆转储快照
-
作用:jhat命令常与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看
-
特点
- jhat分析工作是一个耗时且消费硬件资源的过程,一般从服务下载到本地分析
- jhat的分析功能相对来说比较简陋
-
指令
./jhat d://a
6.jstack(Stack Trace for Java)生成虚拟机当前时刻的线程快照
-
作用:用于生成虚拟机当前时刻的线程快照(一般称为thread dump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿通过jstack来查看各个线程的调用堆栈,就可以知道相应的线程到底在后台做些什么或者等待什么资源
-
指令
jstack -l 14607 # 常用命令 jstack -F 14607 # 当正常输出的请求不被响应时,强制输出线程堆栈Force
7.jconsole(Java Monitoring and Management Console)可视化监视、管理工具
-
作用:是一种基于JMX的可视化监视、管理工具,它管理部分的功能是针对JMXBean进行管理,由于XBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行访问
-
特点:jconsole集成了线程与内存的可视化展示