面试官:你用过哪些JDK自带的命令行工具

栏目: Java · 发布时间: 7年前

内容简介:一、jps:虚拟机进程状况工具 二、jstat:虚拟机统计信息监视工具 三、jmap:Java内存映像工具 四、jhat:虚拟机堆转储快照分析工具 五、jstack:Java堆栈跟踪工具 六、jinfo:Java配置信息工具java和javac这两个命令行工具我们应该都很熟悉,但是除了这两个工具jdk/bin里面还提供了很多工具给我们使用,今天就简单介绍有关虚拟机监控且助于故障排查的工具。实际上这些工具大多数就是jdk/lib/tool.jar的封装,内部就是调用tool里面的内容,所以工具体积都不大,而且

一、jps:虚拟机进程状况 工具 二、jstat:虚拟机统计信息监视工具 三、jmap:Java内存映像工具 四、jhat:虚拟机堆转储快照分析工具 五、jstack:Java堆栈跟踪工具 六、jinfo:Java配置信息工具

java和javac这两个命令行工具我们应该都很熟悉,但是除了这两个工具jdk/bin里面还提供了很多工具给我们使用,今天就简单介绍有关虚拟机监控且助于故障排查的工具。

面试官:你用过哪些JDK自带的命令行工具

实际上这些工具大多数就是jdk/lib/tool.jar的封装,内部就是调用tool里面的内容,所以工具体积都不大,而且在 linux 版本的jdk中有些工具就是用 shell 写的。

1.jps(JVM Process Status Tool)

用于显示指定系统内所有HotSpot虚拟机进程,并且能显示虚拟机执行主类以及本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)功能单一,但是其他因为其他工具都需要指明LVMID(来确定要监控的虚拟机进程,所以都需要用到它。对于本地的虚拟机进程来说LVMID和操作系统的进程ID一致。

使用格式: jps [options] [hostid]

面试官:你用过哪些JDK自带的命令行工具

样例:

面试官:你用过哪些JDK自带的命令行工具

jps可以通过RMI协议查询远程开启RMI服务的虚拟机进程,hostid为RMI注册表中注册的主机名。

2.jstat(JVM Statistics Monitoring Tool)

用于监视虚拟机各种运行状态信息的工具,可以显示本地或者远程的虚拟机进程类装载、内存、GC、JIT等运行数据,在没有GUI图像界面的服务器上,主要就是用它在运行期定位性能问题。

使用格式 : jstat [option vmid [interval [s|ms] [count]] ]

面试官:你用过哪些JDK自带的命令行工具

interval 表示查询的间隔, s|ms 是秒和毫秒(默认是毫秒,即不写单位是毫秒), count 表示查询的次数。

样例:表示每5秒钟查看一次LVMID为34216的虚拟机进程的GC情况,一共查询10次

面试官:你用过哪些JDK自带的命令行工具

3.jmap (Memory Map for Java)

用于生成堆转储快照(heapdump或dump文件),说白了就是把 java 堆使用情况快照一份导出来供我们查看,用来排查问题。

使用格式 : jmap [option] vmid

面试官:你用过哪些JDK自带的命令行工具

样例

面试官:你用过哪些JDK自带的命令行工具

4.jhat (JVM Heap Analysis Tool)

这个就是和jmap搭配使用的,jmap导出来的堆快照文件用jhat 打开分析

使用格式: jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>

面试官:你用过哪些JDK自带的命令行工具

样例:

面试官:你用过哪些JDK自带的命令行工具

查看分析结果

面试官:你用过哪些JDK自带的命令行工具

5.jstack (Stack Trace for Java)

用于生成虚拟机当前时刻线程快照(threaddump或javacore)。主要用来定位线程出现长时间停顿的原因,判断死锁啊,死循环的等。通过jstack就可知各线程的调用堆栈情况。

使用格式: jstack [option] vmid

面试官:你用过哪些JDK自带的命令行工具

样例:

面试官:你用过哪些JDK自带的命令行工具

6.jinfo (Configuration Info for Java)

用来查看和调整虚拟机各项参数

使用格式: jinfo [option] pid

可以通过-flag[+|-] name 添加和删除一些参数,或者-flag name =value修改一些参数,但是很多参数是不允许修改的

面试官:你用过哪些JDK自带的命令行工具

样例:

面试官:你用过哪些JDK自带的命令行工具

结语

本文主要是简单介绍常见的几个JDK命令行工具,建议使用的时候自己通过 命令 -option 查看每个选项实际的意思再使用,毕竟这么选项一般也记不住。而且这些工具有一些算比较简陋了例如jhat ,这玩意分析的简陋,界面也简陋不够强大和专业。所以这些个命令行工具以了解和大概明白其作用为主。

像平日里一般用于分析都用JConsole、VisualVM(All-in-One Java Troubleshooting Tool)这种可视化工具来分析故障监控性能等,有些在IDE里面的也有用MAT等工具分析。

本文参考《深入理解JAVA虚拟机》第四章

如有错误欢迎指正!

个人公众号:yes的练级攻略

有相关面试进阶(分布式、性能调优、经典书籍pdf)资料等待领取


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Rails

Head First Rails

David Griffiths / O'Reilly Media / 2008-12-30 / USD 49.99

Figure its about time that you hop on the Ruby on Rails bandwagon? You've heard that it'll increase your productivity exponentially, and allow you to created full fledged web applications with minimal......一起来看看 《Head First Rails》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具