- -V:不输出路径,只输出进程号和jar
我们依次输入试下,如下图
========================================================================
通过上一步我们可以获得对应 JVM 的进程号,这为我们后续的操作提供了便利,后续的操作都会使用到进程号。
我们先使用一下命令,在使用前我们先获取进程号,我这里服务器运行的进程号为 2528,然后输入jinof 2528
通过上图,我们看到当前 JVM 的版本以及其他详细信息,并且可以看到服务器以及环境变量等一系列信息。同样的我们使用 man jinfo 命令看下手册。
该命令主要是用户查看当前虚拟机相关信息,我们就不过多介绍了。
========================================================================
jstat命令主要是用来监控虚拟机的状态的,可以查看虚拟机 GC 的情况,如下命令jstat -gcutil 2528 1000 10表示每 1000 毫秒输出一次进程 2528 的 GC 情况,并且总共输出 10 次。
jstat 的手册比较长,大家感兴趣可以自行去查看下,这里只贴上面一部分给大家看下。
上面执行的jstat -gcutil 2528 1000 10 如果修改成这个jstat -gcutil -h3 2528 1000 10,最后的效果会是下图,我们可以看到每三行就增加了一个表头,更多命令大家可以自己试试。
![image](https://imgconvert.csdnimg.cn/aHR0
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yMjYyNjUzOS0zODZmMGQyMmJjOTUzZGUw?x-oss-process=image/format,png)
=======================================================================
jmap 命令用于生成dump 文件,jmap -dump:live,format=b,file=dump.bin 2528创建 dump 文件如下。
通过jmap 命令我们可以生成内存快照文件,用于分析程序异常时的内存信息,并且配合jhat命令可以更好的使用。
=======================================================================
上面提到我们在使用 jmap 的时候生成了一个内存快照文件,那我们如何查看这个内存文件呢?这里就需要结合jhat命令了。我们使用jhat dump.bin 就可以启动一个服务,然后通过浏览器打开默认的 7000 端口来查看信息。
访问 7000 端口如下:
=========================================================================
jstack用于生成java虚拟机当前时刻的线程快照,线程快照是当前 java 虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿的时候通过 jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。
使用命令jstack 2528 查看线程堆栈情况如下:
通过这个命令我们可以看到进程对应的线程执行情况,可以分析哪些线程在允许,哪些线程在等待。
=====================================================================
JDK 常见的命令阿粉就给大家介绍到这里,在平时的工作和学习中大家可以尝试去使用一下,感受一下,这样就算是在面试的时候或者实际要用的时候就能做的得心应手。