虚拟机故障处理工具
jps:虚拟机进程状况工具
-
可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称以及这些进程的本地虚拟机唯一ID(LVMID)。
-
对于本地虚拟机进程来说,LVMID与操作系统的进程ID是一致的。
-
参数
选项 作用 -q 只输出LVMID,省略主类的名称 -m 输出虚拟机进程启动时,传递给主类main()函数的参数 -l 输出主类的全类名,如果进程执行的是Jar包,则输出Jar的路径 -v 输出虚拟机进程启动时的JVM参数
jstat:虚拟机统计信息监视工具
-
用于监视虚拟机各种运行状态信息的工具。
-
可以显示本地或远程虚拟机进程中的类加载、内存、垃圾回收、即时编译等运行时数据
-
参数
选项 作用 -class 监视类加载,卸载数量,总空间以及类装载所耗费的时间 -gc 监视java堆状况,包括Eden区,2个survivor区,老年代,永久代等的容量,已用空间,垃圾收集时间合计等信息 -gcnew 监视新生代垃圾收集情况 -gcold 监视老年代垃圾收集情况
jinfo:Java配置信息工具
- 实时查看和调整虚拟机各项参数
- 可以使用
-flag name=value
在运行期修改一部分运行期可写的虚拟机参数值
jmap:Java内存映像工具
-
用于生成堆转储快照
-
还可以查询finalize执行队列,Java堆和方法区的详细信息。如空间使用率,当前使用的哪种收集器
-
参数
选项 作用 -dump 生成Java堆转储快照,格式为 -dump:[live,]format=b,file=<filename>
,其中live子参数说明是否只dump出存活的对象-finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalizer方法的对象 -heap 显示java堆详细信息,如使用的回收器,参数配置,分代状况等 -F 当使用-dump没有响应时,可以使用该选项强制生成-dump快照
jhat:虚拟机堆转储快照分析工具
- 与jmap搭配使用,来分析jmap生成的堆转储快照
- 内置了HTTP/Web服务器,能够在浏览器中查看分析结果
jstack:Java堆栈跟踪工具
-
用于生成虚拟机当前时刻的线程快照
-
可以用来定位线程出现长时间停顿的原因,如线程间死锁,死循环,请求外部资源导致的长时间挂起等
-
参数
选项 作用 -F 当正常输出的请求不被响应时,强制输出线程堆栈 -l 除堆栈外,显示关于锁的附加信息 -m 如果调用到本地方法的话,可以显示C/C++的堆栈