在java开发的过程中经常会遇到jvm相关问题和故障,那么遇到问题时经常使用的处理工具有哪些呢?下面一起来梳理下
JPS(JVM Process Status Tool):显示指定系统内所有的HotSpot的虚拟机进程
jstat(JVM Statistics Monitoring Tool):用于收集HotSpot虚拟机各方面的运行参数
jinfo(Configuration Info for java):显示虚拟机的配置信息
jmap(Memory Map for Java):生成虚拟机的内存转储快照(heapdump文件)
jhat(JVM Heap Dump Browser):用于分析heapdump文件,它会建立一个HTTP、HTML服务器,让用户可以在浏览器上查看分析结果
jstack(Stack Trace for Java):显示虚拟机的线程快照
#################################
JPS
jps 的命令格式:jps [options] [hostid]
jps 配合一下参数使用
-q 只输出进程ID,忽略主类的名称
-m 输出虚拟机季程程启动是传递给主类的main()的参数
-l 输出主类的全限定名,如果进程执行的是jar保,输出jar包的路径
-v 输出虚拟机进程启动时的JVM参数
JSTAT
jstat 命令格式:jstat [option vmid [interval[s|ms] [count]]]
命令格式中interval 和count代表查询的间隔和次数
配合以下参数
JINFO
jinfo的命令格式:jinfo [option] pid
JMAP
jmap的命令格式:jmap [option] vmid
配合以下命令使用
JHAT
jhat命令格式:jhat 文件
该工具慎用,万不得已不选择该工具,除非手上没有其他的分析工具,不选用的原因有二:
第一、一般不会在部署应用的服务器上直接分析dump文件,因为分析dump文件是一个耗时且消耗硬件资源的过程,一般都是在其他的机器上分析。
第二、jhat的分析功能相对来说是比较简陋的。没有专业的分析工具功能全面,如(VisualVM)
JSTACK
jstack的命令格式:jstack [option] vmid
配合以下命令使用