概览: 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,线程正在等待