赞
踩
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
第二个参数:vmid
vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。我们直接在CMD中操作一下:
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
第二个参数:pid。指定显示的进程id。在CMD中进行测试:
5、jmap:内存映像工具
用于生成堆转存的快照,一般是heapdump或者dump文件。如果不适用jmap命令,可以使用-XX:+HeapDumpOnOutOfMemoryError参数,当虚拟机发生内存溢出的时候可以产生快照。或者使用kill
-3
pid也可以产生。jmap的作用并不仅仅是为了获取dump文件,它可以查询finalize执行队列,java堆和永久代的详细信息,如空间使用率,当前用的哪种收集器。jmap的命令格式:jmap
[option] vmid。主要参数如下:
6、JConsole:JMX的可视化管理工具
这个工具相比较前面几个工具,使用率比较高,很重要。它是一个java
GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。在cmd里面输入
jconsole,选则进程就可以了。(前提是在IDE工具先建立一个线程运行着)
然后我们选择了相应的选项之后,进入这个工具就会出现下面这个界面
在上面有菜单,我们可以选择其中一个进行查看就可以了,这个用具用起来很方便,使用频率很高。
JVM监控工具不仅在故障排查的时候会使用到,在做压测的时候也需要查看java进程的有关参数,有时候在JVM面试题中也会考察到这方面的内容,所以上面关于JVM监控工具的介绍,大家需要认真学习,并在java教程中学习JVM监控工具的更多操作的使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。