(JVM)java虚拟机性能监控工具

最近 再看java虚拟机这一块的知识,想总结一下关于jdk的命令行工具,供日后工作需要时查阅。

由于jdk的版本不同,有些工具的参数等会有些差异,我在书中看到的是使用的jdk1.6,而我自己电脑上使用的jdk版本是1.8

jdk的命令行工具总结:

cmd进入 JDK的bin 目录下

(一)jps(虚拟机进程状况工具)

显示指令系统内所有的HotSpot虚拟机进程

如下图,我启动了主函数MainApplication和DMCServiceApplication

(JVM)java虚拟机性能监控工具_第1张图片

可以显示虚拟机正在运行的进程,显示虚拟机执行的主函数的名称以及本地虚拟机唯一ID(LVMID),在此基础上,其他的操作可以根据ID来监控虚拟机,jps的几个参数如下:

(JVM)java虚拟机性能监控工具_第2张图片

(二)jstat(虚拟机统计信息监视工具)

用于监视虚拟机各种运行状态信息 。命令格式为:

对于本地虚拟机,vmid与LVMID一样,如果是远程虚拟机,那么vmid的格式为;

interval代表查询间隔,count代表查询次数,默认查询一次,

例如:250ms查询进程ID为:27248的垃圾收集情况,查询20次

jstat -gc 27248 250 20

(JVM)java虚拟机性能监控工具_第3张图片

jstat工具的参数如下所示:
 

(JVM)java虚拟机性能监控工具_第4张图片

jstat -gcutil 27248  进程所占空间百分比显示

(JVM)java虚拟机性能监控工具_第5张图片

E(新生代Eden区),S0,S1(Survivor),O(Old老年代),YGC(Young GC)9次,耗时0.063s,FGC(Full GC)3次,耗时0184s,

(三)jinfo(java配置信息工具)

实时查看和调整虚拟机参数。

使用jps可以查看虚拟机启动时显示指定的参数:

27248 MainApplication -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:D:\software\IntelliJ IDEA 2018.3.5\lib\idea_rt.jar=61821:D:\software\IntelliJ IDEA 2018.3.5\bin -Dfile.encoding=UTF-8

查看进程的CMSInitiatingOccupancyFraction参数值:

(四)jmap(Java内存映像工具)

用于生成堆转储快照(heapdump),具体参数如下:

 

(JVM)java虚拟机性能监控工具_第6张图片

(五)jstack(Java堆栈跟踪工具)

用于生成当前线程虚拟机当前时刻的快照,线程快照是当前虚拟机内 每一条方法正在执行的方法堆栈集合,定位线程出现长时间停顿的原因,通过jstack查看各个线程的调用堆栈,查看线程正在做些什么事情,或者正在等待什么操作。

参数如下:

(JVM)java虚拟机性能监控工具_第7张图片

jstack -l +进程ID

(JVM)java虚拟机性能监控工具_第8张图片

可视化工具:

(一)JConsole:java监视与管理平台

进入jdk/bin下,点击jconsole.exe,如下图所示:

(JVM)java虚拟机性能监控工具_第9张图片

(二)VisualVM多合一故障处理工具

注:

插件:BTrace  动态日志跟踪。在不停止当前运行程序的情况下,加入程序中本身不存在的调试代码,在排查错误时,因为缺少必要的排查信息,方法,属性等打印信息,不得不停止当前正在运行的程序,在当前程序无法停止的情况下,可以使用插件,动态插入调试代码。

你可能感兴趣的:(java,java虚拟机)