专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 必须掌握的JVM监控工具

必须掌握的JVM监控工具

更新时间:2020-10-23 17:26:46 来源:星辉 浏览1158次

JVM是在java面试题中最常出现的题目类别之一,不仅是因为JVM属于java零基础的初学者首先要学习的内容,更因为虚拟机是使java语言实现与平台无关性这一特点的关键。这篇文章接着以前学习过的概念、JVM运行机制的内容,继续学习JVM的相关知识——JVM监控工具,是大家要掌握的虚拟机的内容。


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

jps主要用来输出JVM中运行的进程状态信息。语法格式如下:

jps [options] [hostid]

第一个参数:options

-q 不输出类名、Jar名和传入main方法的参数-m 输出传入main方法的参数-l 输出main类或Jar的全限名-v 输出传入JVM的参数

第二个参数:hostid

主机或者是服务器的id,如果不指定,就默认为当前的主机或者是服务器。这是在Windows10系统下测试的,当然也可以在linux下试验,方式是一样的,结果可能有不同,可以选择不同的参数选项来进行测试,打开CMD输入相应命令。


2、jstack:堆栈跟踪工具

jstack用于生成虚拟机当前时刻的线程快照。语法格式如下:

jstack [option] vmid

第一个参数:option

image.png

第二个参数:vmid

vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。我们直接在CMD中操作一下:

image.png


3、jstat:虚拟机统计信息监控工具

jstat监视虚拟机各种运行状态信息,可以显示本地或者是远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。语法格式如下:

jstat [ generalOption | outputOptions vmid [interval] [count]] ]

第一个参数:generalOption | outputOptions。这个参数表示的option,代表着用户希望查询的虚拟机信息,分为类加载、垃圾收集、运行期编译状况3类。第二个参数:vmid。vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。第三个参数:interval。interval是采样时间间隔。第四个参数:count。count表示的是采样数。


4、jinfo:实时地查看和调整虚拟机各项参数

命令格式:jinfo [option] pid

第一个参数:option

image.png

第二个参数:pid。指定显示的进程id。在CMD中进行测试:

image.png


5、jmap:内存映像工具

用于生成堆转存的快照,一般是heapdump或者dump文件。如果不适用jmap命令,可以使用-XX:+HeapDumpOnOutOfMemoryError参数,当虚拟机发生内存溢出的时候可以产生快照。或者使用kill -3 pid也可以产生。jmap的作用并不仅仅是为了获取dump文件,它可以查询finalize执行队列,java堆和永久代的详细信息,如空间使用率,当前用的哪种收集器。jmap的命令格式:jmap [option] vmid。主要参数如下:

image.png


6、JConsole:JMX的可视化管理工具

这个工具相比较前面几个工具,使用率比较高,很重要。它是一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。在cmd里面输入 jconsole,选则进程就可以了。(前提是在IDE工具先建立一个线程运行着)

image.png

然后我们选择了相应的选项之后,进入这个工具就会出现下面这个界面

image.png


在上面有菜单,我们可以选择其中一个进行查看就可以了,这个用具用起来很方便,使用频率很高。


JVM监控工具不仅在故障排查的时候会使用到,在做压测的时候也需要查看java进程的有关参数,有时候在JVM面试题中也会考察到这方面的内容,所以上面关于JVM监控工具的介绍,大家需要认真学习,并在java教程中学习JVM监控工具的更多操作的使用。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>