【JVM】总结(三)——虚拟机性能监控与故障处理工具

一、JDK的命令行工具:

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

下面详细介绍:

1、jps:虚拟机进程状况工具

功能和ps命令类似:可以列出正在运行的虚拟机进程,显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID。使用频率最高。

jsp命令格式:jps [options] [hostid]

例如:jsp -l //输出主类全名,包括进程ID和进程名称

2、jstat:虚拟机统计信息监视工具

用于监视虚拟机各种运行状态信息的命令行工具,可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。是没有图形界面的服务器运行期定位虚拟机性能问题的首选工具。

jstat命令格式:jstat [option vmid [interval[s|ms]] [count]]

例如:jstat -gc 2764 250 20 //每250毫秒查询一次2764的垃圾收集情况,一共查询20次

3、jinfo:Java配置信息工具

jinfo的作用是实时地查看和调整虚拟机各项参数。

jinfo命令格式:jinfo [option] pid

例如:jinfo -flag CMSInitiatingOccupancyFraction 1444 //查询CMSInitiatingOccupancyFraction参数值

jinfo -flag 参数名 pid:可以查看指定参数的值

jinfo -sysprops pid:查看系统参数

jinfo -flag [+|-] pid:修改部分参数值

4、jmap:内存映像工具

jmap命令用于生成堆转储快照(一般称为heapdump或dump文件),还可以查询finalize执行队列、java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。

jmap命令格式:imap [option] vmid

例如:jmap -dump:format=b,file=eclipse.bin 3500 //生成一个dump快照文件

5、jhat:虚拟机堆转储快照分析工具

jhat命令与jmap命令搭配使用,分析jmap生成的堆转储快照。jhat内置了一个微型HTTP/HTML服务器,生成dump文件的分析结果后可以在浏览器中查看。在实际工作中,除非没有其他工具否则一般不会使用这个工具。

例如:jhat eclipse.bin

6、jstack:Java堆栈跟踪工具

jstack命令用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程死锁、死循环、请求外部资源导致的长时间等待等等。

jstack命令格式:jstack [option] vmid

例如:jstack -l 3500

7、HSDIS:JIT生成代码反汇编

作用是让HotSpot的-XX:+PrintAssembly指令调用它来把动态生成的本地代码还原为汇编代码输出。

二、JDK可视化工具

两个功能强大的可视化工具:JConsole和VisualVM。

1、JConsole:Java监视与管理控制台

JConsole是一种基于JMX的可视化监视、管理工具。它管理部分的功能是针对JMX MBean进行管理。通过JDK/bin目录下的“jconsole.exe”启动JConsole后,将自动搜索出本机运行的所有虚拟机进程。

2、VisualVM:多合一故障处理工具

VisualVM是目前为止随JDK发布的功能最强大的运行监视和故障处理程序,主流使用。除了具备运行监视、故障处理功能外还提供了性能分析。VisualVM一个很大的优点是:不需要被监视的程序基于特殊Agent运行,因此它对应用程序的实际性能的影响很小,可以直接用于生产环境中。

在cmd中输入jvisualvm命令,即可启动程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值