jvm性能分析和故障解决工具

jvm性能分析和故障解决工具_第1张图片

我们写的java程序需要在jvm上运行,可能出现内存泄漏,死循环,内存溢出,死循环,死锁,当发生这些事情的时候,我们就需要借助jdk的工具。

 

jdk的bin目录下有很多工具

例如

javac.exe 编辑java文件的

java.exe 来执行.class文件的

javap.exe 是反编译.class文件的

jar.exe是用来打jar包的

 

将jdk的lib下的tools.jar 解压,然后在sun/tools下可以看到与bin目录下的工具名称一样的目录,这里面放的就是上面工具的源码,编译之后就可以运行了

jvm性能分析和故障解决工具_第2张图片

我们jdk8学习这些命令

jvm性能分析和故障解决工具_第3张图片

jps的作用

常见的命令参数有:

jvm性能分析和故障解决工具_第4张图片

jvm性能分析和故障解决工具_第5张图片

jps -v

jvm性能分析和故障解决工具_第6张图片

jvm性能分析和故障解决工具_第7张图片

jstat 命令

jvm性能分析和故障解决工具_第8张图片

jvm性能分析和故障解决工具_第9张图片

jstat -gc

jvm性能分析和故障解决工具_第10张图片

如果不指定 间隔和次数,默认只会打印一次

 

 

jstat -class

jstat -compiler

jvm性能分析和故障解决工具_第11张图片

 

jvm性能分析和故障解决工具_第12张图片

gc命令的详细分析

jstat -gc

jvm性能分析和故障解决工具_第13张图片

01064341885 酒仙桥电话
S0C S1C 表示的是:堆内存中幸存区域的大小
S0U S1U 表示的是:堆内存中幸存区的使用大小
EC 表示的是:伊甸园区的内存大小
EU 表示的是:伊甸园区的使用内存
OC 表示的是:老年代的容量
OU 表示的是:老年代的使用状态

(其中MC和MU 在jdk1.8中使用,即对于方法区的方案用的是:元空间,在jdk1.7中叫做永久代的大小)
MC 表示的是:元空间的大小
MU 表示的是:元空间的使用大小
CCSC 表示的是:类压缩空间的容量
CCSU 表示的是:类压缩空间使用的大小
YGC 表示的是: young gc的次数
YGCT 表示的是: young gc 用的时间

FGC:表示的是:Full gc 的次数
FGCT: 表示的是:Full gc 用的时间

GCT 表示的是: 所有gc用的时间

 

jvm性能分析和故障解决工具_第14张图片

main方法中执行到数组第三次垃圾回收

jvm性能分析和故障解决工具_第15张图片

jvm性能分析和故障解决工具_第16张图片

jvm性能分析和故障解决工具_第17张图片

jmp命令:

jvm性能分析和故障解决工具_第18张图片

jvm性能分析和故障解决工具_第19张图片

jmap -heap pid

分析:

jvm性能分析和故障解决工具_第20张图片jvm性能分析和故障解决工具_第21张图片

jvm性能分析和故障解决工具_第22张图片

jvm性能分析和故障解决工具_第23张图片

jvm性能分析和故障解决工具_第24张图片

jvm性能分析和故障解决工具_第25张图片

jhat命令

jvm性能分析和故障解决工具_第26张图片

jvm性能分析和故障解决工具_第27张图片

jvm性能分析和故障解决工具_第28张图片

 

jvm性能分析和故障解决工具_第29张图片

jvm性能分析和故障解决工具_第30张图片

点开:

jvm性能分析和故障解决工具_第31张图片jvm性能分析和故障解决工具_第32张图片

jvm性能分析和故障解决工具_第33张图片

jstack命令:

jvm性能分析和故障解决工具_第34张图片

jstack -F pid

jvm性能分析和故障解决工具_第35张图片

jvm性能分析和故障解决工具_第36张图片

jstack -l

写一个死循环代码,我们借助process explorer来查看cpu的使用情况

jvm性能分析和故障解决工具_第37张图片

我们看到对应的Threads中6160(对应的十六进制是:1810) 的占用cpu占用的比较高:

我们根据进程id即java.exe 的进程id,利用 jstack -l 命令来查看该进程的所有线程信息,我们找到线程id是1810

jvm性能分析和故障解决工具_第38张图片

下面是获取外部资源(例如需要输入,即卡顿长时间没有响应)利用jstack来进行分析

jvm性能分析和故障解决工具_第39张图片

利用jstack来演示死锁:

jvm性能分析和故障解决工具_第40张图片

可视化工具jconsole:

在terminal 中直接输入jconsole 就可以看到图形化界面了

jvm性能分析和故障解决工具_第41张图片

jvm性能分析和故障解决工具_第42张图片

jvm性能分析和故障解决工具_第43张图片

jvm性能分析和故障解决工具_第44张图片

jvm性能分析和故障解决工具_第45张图片

虚拟机的配置信息

jvm性能分析和故障解决工具_第46张图片

jvm性能分析和故障解决工具_第47张图片

jvm性能分析和故障解决工具_第48张图片

jvm性能分析和故障解决工具_第49张图片

你可能感兴趣的:(jvm)