jvm笔记-03-虚拟机性能监控与故障处理工具

概览: jps、jhat、jinfo、jmap、jhat、jstack

jps: 虚拟机进程状况工具

常用来获取虚拟机进程ID(LVMID)。

选项 作用
-q 只输出LVMID
-m 输出main()的参数
-l 输出类全名或jar路径
-l 输出jvm参数

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

显示虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

用法:

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

举例:

1
jstat -gc 25766 250 10

S表示两个 Survivor区,老年代为O,元空间为M。

YGC表示Minor GC次数,YGCT为年轻代的垃圾回收总耗时。

jinfo: Java配置信息工具

用来查看和调整虚拟机各项参数。

可以使用 jinfo -flag 命令查看特点参数

1
jinfo -flag CMSInitiatingOccupancyFraction 21504

jmap: Java 内存映射工具

jmap命令用于生产堆转储快照 heapdump,还可以查询 finalize 执行队列、Java堆和永久代详细信息。

1
jmap -dump:format=b,file=dump.bin 26154

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

1
jhat /root/dump.bin

通过http查看分析结果,主要用到 Heap Histogram找到内存中总容量最大的对象,OQL页功能使用类似SQL语法堆内存中对象查询统计。

jstack: Java堆栈跟踪工具

生成虚拟机当前的线程快照 threaddump
线程快照,是虚拟机内每条线程正在执行方法栈集合。
线程快照可以用来定位长时间停顿原因,如线程死锁、死循环、等待资源。

在dump中,线程一般存在如下几种状态:
1、RUNNABLE,线程处于执行中
2、BLOCKED,线程被阻塞
3、WAITING,线程正在等待

推荐文章