目录
1.1、JPS(JVM Process Status Tool)
1.2、jstat (JVM Statistics Monitoring Tool)
1.3、jinfo. (jvm Configuration Info for java)
1.4、jmap (JVM Memeory Map for java)
1.5、jstack (Stack Trace for Java)
1.6、jhat (Java Heap Dump for java )
2.3、MAT (Memory Analyize Tools)
前言
1、命令行工具
1.1、JPS(JVM Process Status Tool)
1.2、jstat (JVM Statistics Monitoring Tool)
-
查看gc的详细信息;
-
各个代的gc信息;
jstat -gc 7972 200 10 //gc情况 没200ms输出一次,输出10次;
jstat -gcnew 7972 200 10 //gc年轻代
jstat -gcold 7972 200 10 //gc老年代
jstat -gccause 772 200 10 //gc的原因
实例操作如下:

- S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
- S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
- S0U :年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
- S1U :年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
- EC :年轻代中Eden(伊甸园)的容量 (字节)
- EU :年轻代中Eden(伊甸园)目前已使用空间 (字节)
- OC :Old代的容量 (字节)
- OU :Old代目前已使用空间 (字节)
- MC:metaspace(元空间)的容量 (字节)
- MU:metaspace(元空间)目前已使用空间 (字节)
- YGC :从应用程序启动到采样时年轻代中gc次数
- YGCT :从应用程序启动到采样时年轻代中gc所用时间(s)
- FGC :从应用程序启动到采样时old代(全gc)gc次数
- FGCT :从应用程序启动到采样时old代(全gc)gc所用时间(s)
- GCT:从应用程序启动到采样时gc用的总时间(s)
1.3、jinfo. (jvm Configuration Info for java)
-
查看项目中jvm参数;
-
修改jvm参数值;
jps -l //打印所有的java进程id;
jinfo -flags 2716 //查看所有曾经赋过值的参数;
jinfo -flag UseG1GC 2716; //查看是否使用了G1垃圾收集器
jinfo -flag MaxHeapSize 2716 //查看最大堆内存大小;
jinfo -flags MaxHeapSize= 102400 2716 //修改:只有参数是manageable修饰的参数才可以修改;
jinfo -flag +PrintGCDetails 7972
jinfo -flags pid //打印出当前进程的所有的参数
Java -XX:+PrintFlagsFinal -version //打印出虚拟机的java所有的配置的参数
1.4、jmap (JVM Memeory Map for java)
jmap -heap 8123 //堆的信息
jmap -dump:live,format=b,file=heap.bin 1234 //生成堆的转储文件
其实很少手动dump,可以通过 - XX:+HeapDumpOnOutOfMemeoryError 打印出堆快照文件,只有在发生OOM的时候才生成dump文件,这时候分析dump文件,得到是什么占用了jvm的堆内存导致了OOM,最终的目的是排查问题。
1.5、jstack (Stack Trace for Java)
jstack pid; //可以打印出进程中线程的栈,及状态;
先查看cpu使用率高
-
线程发生问题-死锁;
-
线程状态;
1.6、jhat (Java Heap Dump for java )
2、图形工具
2.1、Jconsole
2.2、jvisualVM

2.3、MAT (Memory Analyize Tools)

3、小结
名称
|
作用
|
分析工具—(在线的要注意安全性问题)
|
jps
|
查看java
进程
|
|
jstat
|
查看
gc
的详细信息
|
|
jinfo
|
查看和修改jvm的配置参数
信息
|
|
jmap
|
dump内存
文件:
jmap -dump:format=b, file=heap.txt pid
|
本地mat/
perfma笨马/(mat可以生成内存报告/查看gcroots)
|
jstack
|
java
线程
栈的信息,死锁
|
在线查看工具:fastthreadio
|
jconsole
|
java
监视和管理控制台 treadmanage管理工具;
|
|
jvisualVM
|
多合一
故障处理工具
|
|
gc
|
+XX:GCdetails/停顿时间 + 吞吐量
|
本地查看工具:gcviewer
在线查看工具:Greasy
|