6.虚拟机性能监控与故障处理工具

一、虚拟机命令行工具
1.虚拟机工具概述
概述:给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。经常使用适当的虚拟机监控和分析的工具可以加快我们分析数据、定位解决问题的速度,但在学习工具前,也应当意识到工具永远都是知识技能的一层包装,没有什么工具是“秘密武器”,不可能学会了就能包治百病。

JDK的命令行工具:Java开发人员肯定都知道JDK的bin目录中有“java.exe”、“javac.exe”这两个命令行工具,但并非所有程序员都了解过JDK的bin目录之中其他命令行程序的作用。每逢JDK更新版本之时,bin目录下命令行工具的数量和功能总会不知不觉地增加和增强。书中主要介绍:这些工具的其中一部分,主要包括用于监视虚拟机和故障处理的工具。这些故障处理工具被Sun公司作为“礼物”附赠给JDK的使用者,但事实上,这些工具都非常稳定而且功能强大,能在处理应用程序性能问题、定位故障时发挥很大的作用。
在这里插入图片描述

JDK主要命令行监控工具:
jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程;
jstat:JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据;
jinfo:Configuration Info for Java ,显示虚拟机配置信息;
jmap:Memory Map for Java ,生成Java虚拟机的内存转储快照(heapdump文件);
jhat:JVM Heap Dump browser,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果;
jstack:Stack Trace for Java,显示虚拟机的线程快照。

2.jps:虚拟机进程状况工具
主要功能:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。对于本地虚拟机进程来说,LVMID与操作系统的进程ID(Process Identifier,PID)是一致的,使用Windows的任务管理器或者UNIX的ps命
令也可以查询到虚拟机进程的LVMID。不带任何参数的命令如下:
在这里插入图片描述
命令格式
在这里插入图片描述
jps工具主要选项
在这里插入图片描述
jps -q 示例:
在这里插入图片描述
jps -m 示例:
在这里插入图片描述
jps -l 示例:
在这里插入图片描述
jps -v 示例:
在这里插入图片描述

3.jstat:虚拟机统计信息监视工具
主要功能:是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程[1]虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

命令格式
在这里插入图片描述
:对于命令格式中的VMID与LVMID需要特别说明一下:如果是本地虚拟机进程,VMID与LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应当是:
在这里插入图片描述
jstat工具主要选项
在这里插入图片描述
示例:由于jstat 命令需要指定进程号,所以依赖于jps进程命令,
在这里插入图片描述
参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次。假设需要每250毫秒查询一次进程8328垃圾收集状况,一共查询10次,那命令应当是::
jstat -gcutil 8328 250 10
在这里插入图片描述
结果分析
查询结果表明:这台服务器的新生代Eden区(E,表示Eden)使用了6%的内存空间,两个Survivor区(S0、S1,表示Survivor0、Survivor1)里面都是空的,老年代(O,表示Old)使用0%空间,元空间(M)使用了0%的空间。程序运行以来共发生Minor GC(YGC,表示Young GC)0次,总耗时(YGCT)0秒,发生Full GC(FGC,表示FullGC)0次,Full GC总耗时(FGCT,表示Full GC Time)为00秒,所有GC总耗时(GCT,表示GC Time)为0秒(应为YGCT和FGCT之和)。

具体功能选项可参考官网:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

4.jinfo:Java配置信息工具
主要功能:实时地查看和调整虚拟机各项参数。使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag选项进行查询了。

命令格式
在这里插入图片描述

利用jinfo -help命令查看命令选项
在这里插入图片描述

使用举例:查看Eclipse进程是否使用Serial GC 或者 G1 GC ,出现-XX:+UseG1GC,代表使用G1垃圾收集器
在这里插入图片描述

5.jmap:Java内存映像工具
主要功能:jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。

命令格式
在这里插入图片描述
jmap主要命令选项
在这里插入图片描述
使用举例:使用-dump选项,在d盘下生成a.bin文件。
在这里插入图片描述

注意&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值