目录
JDK自带基础工具
jps进程状况
jps -l
jps -v 查看启动时显示指定的JVM参数,不显示默认的参数(可通过jinfo)
jstat统计信息监视
查看2764进程的垃圾收集情况,每250ms刷新一次,执行20次
jstat -gc 2764 250 20
简要查看各区占比,ygc fgc次数和时间
jstat -gcutil 2764
jinfo配置信息工具
实时查看和调整虚拟机各项参数
*查看虚拟机有哪些参数可以通过
java -XX:+PrintFlagsFinal
jinfo -flag
jmap内存映像工具
用于生成堆转储快照,heapdump或heaprof
也可以通过指定参数生成堆转储快照-XX:HeapDumpOnOutOfMemoryError
生成堆转储快照
jmap -dump
注意:这条命令不能在生成环境中使用,会造成业务服务停顿。可以通过arthas等工具。
查看每个类实例的空间占用统计
jmap -histo
重要:这条命令可以用于OOM是查看哪些类实例对象占用较多的内存,方便定位问题。
jhat堆转储快照分析工具
内置了微型HTTP/Web服务器,分析后可以在浏览器查看。
但是比较少用,而是用其他工具代替。
jstack堆栈跟踪工具
用于生成当前时刻的线程快照,threaddump或javacore文件。
通常用于定位线程出现长时间停顿的原因, 如死锁,死循环,挂起等。
显示锁的附加信息
jstack -l
开源Java诊断工具
Arthas:https://arthas.aliyun.com/doc/
参考:《深入理解Java虚拟机》 第3版 周志明