[转帖]【JVM】JDK命令行工具
在JDK/bin目录下我发现了许多命令行工具

这些命令有哪些作用呢,接下来我就来详细介绍一下
常用JDK命令行工具
| 命令名称 | 全称 | 用途 |
|---|---|---|
| jstat | JVM Statistics Monitoring Tool | 用于收集Hotspot虚拟机各方面的运行数据 |
| jps | JVM Process Status Tool | 显示指定系统内所有的HotSpot虚拟机进程 |
| jinfo | Configuration Info for Java | 显示虚拟机配置信息 |
| jmap | JVM Memory Map | 生成虚拟机的内存转储快照,生成heapdump文件 |
| jhat | JVM Heap Dump Browser | 用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户在浏览器上查看分析结果 |
| jstack | JVM Stack Trace | 显示虚拟机的线程快照 |
1. jps
(1) 定义:查看虚拟机进程信息
(2) 参数:
-q 只输出进程ID,不输出类的短名称
-m 输出传递给Java进程的函数
-l 输出主函数的完整路径
-v 显示传递给JVM的参数
(3)实例

2.jinfo
(1)定义:用于查看和调整虚拟机的配置参数
(2)参数
-flag 打印指定JVM的参数值
-flag [+]-] 设置指定JVM参数的布尔值
-flag = 指定JVM参数的值
(3)实例


3.jstack
(1)定义:虚拟机堆栈跟踪
(2)参数
-l 打印锁信息
-m 打印Java和native 的帧信息
-F 强制dump,当jstack没有响应时使用。
(3)实例


4.jstat
(1)定义:查看虚拟机统计信息监视工具
(2)参数
-class 监视类装载,卸载数量,总空间以及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区,两个survivor区,老年代,永久代的容量,已用空间,GC时间合计等信息
-gccapacity 内容与-gc基本相同,但主要输出Java堆各个区域的最大最小空间
-gcutil 内容与-gc基本相同,但主要关注已使用空间占总空间的百分比
-gccause 内容与-gcutil基本相同,但主要关注已使用空间占总空间的百分比,并输出导致上一次GC的原因
-gcnew 监视新生代GC情况
-gcnewcapacity 内容与-gcnew基本相同,但主要输出使用到的最大最小空间
-gcold 监视老年代GC情况
-gcoldcapacity 内容与-gcnew基本相同,但主要输出使用到的最大最小空间
-gcpermcapacity 输出永久代使用到的最大最小空间
-complier 输出JIT 编译器编译过的方法耗时的信息
-printcompliter 输出已经被JIT编译的方法
(3)实例

每列的含义
- S0C:第一个幸存区的大小
- S1C:第二个幸存区的大小
- S0U:第一个幸存区的使用大小
- S1U:第二个幸存区的使用大小
- EC:伊甸园区的大小
- EU:伊甸园区的使用大小
- OC:老年代大小
- OU:老年代使用大小
- MC:方法区大小
- MU:方法区使用大小
- CCSC:压缩类空间大小
- CCSU:压缩类空间使用大小
- YGC:年轻代垃圾回收次数
- YGCT:年轻代垃圾回收消耗时间
- FGC:老年代垃圾回收次数
- FGCT:老年代垃圾回收消耗时间
- GCT:垃圾回收消耗总时间
5.jmap
(1)定义:生成Java应用程序的堆快照和对象的统计信息
(2)参数
-dump 生成Java堆转储快照,格式为: -dump:[live , ]format=b , file=,其中live子参数 说明只dump出存活的对象
-finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法的对象
-heap 显示Java堆详细信息,如使用哪种回收器,参数配置,分代状况等
-histo 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”
(3)实例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMb9Tqn3-1615415603986)(https://img-blog.csdn.net/20170624212413840?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpeWVfeGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
6. jhat
(1)定义:分析虚拟机转储快照信息
(2)参数:后面接文件路径
(3)实例

打开浏览器,输入网址:http://127.0.0.1:7000/
然后就可以看到(部分网页)


其他工具
当然还有几个其他工具,例如
内存dump后的分析工具:MAT
看Java进程的native栈:pstack
日志相关工具:tail,find,fgrep,awk
查看Java堆外的内存消耗:gperf
小结
- 命令行终端
- 标准终端类:jps、jinfo、jstat、jstack、jmap
- 功能整合类:jcmd、vjtools、arthas、greys
- 可视化界面
- 简易:JConsole、JVisualvm、HA、GCHisto、GCViewer
- 进阶:MAT、JProfiler
参考:java问题排查工具单
[转帖]【JVM】JDK命令行工具的更多相关文章
- JVM-JDK命令行工具
JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. ...
- jdk命令行工具(一)
1.概述 熟悉java开发的人应该都知道在jdk的bin目录下有许多的工具,这些工具主要用于监视虚拟机和故障处理.这些故障处理工具被Sun公司称作为“礼物”附赠给JDK的使用者,并在软件的使用说明中把 ...
- JVM性能监控工具(一)-jdk命令行工具
转载:http://blog.csdn.net/top_code/article/details/51456186 当系统出bug需要定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处 ...
- JVM调优前戏之JDK命令行工具---jhat
在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下 ...
- JVM调优前戏之JDK命令行工具---jstack
在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下 ...
- JVM 常用命令行工具
本文部分摘自<深入理解 Java 虚拟机第三版> 基础故障处理工具 Java 开发人员肯定都知道 JDK 的 bin 目录下有许多小工具,这些小工具除了用于编译和运行 Java 程序外,打 ...
- Java之jdk命令行工具详解
JPS---虚拟机进程状况工具 常用的参数: -l 输出Java应用程序的main class的完整包 -q 仅显示pid,不显示其它任何相关信息 -m 输出传递给main方法的参数 -v 输出传递给 ...
- JDK命令行工具
jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数 jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapd ...
- JVM常用命令行工具1
1.jps [options][hostid]:查看虚拟机进程状况 -l 输出主类全名,如果进程执行的是jar包,输出jar包路径.-q 只输出LVMID. -m输出虚拟机进程启动时传递给主类main ...
- jdk命令行工具系列
虚拟机堆转储快照分析工具使用jmap等方法生成java的堆文件后jhat:虚拟机堆转储快照分析工具 导出程序执行的堆信息 jps jps -l jmap -dump:format=b,file=D:/ ...
随机推荐
- 深度探秘.NET 5
今年11月10号 .NET 5.0 如约而至.这是.NET All in one后的第一个版本,虽然不是LTS(Long term support)版本,但是是生产环境可用的. 有微软的背书,微软从. ...
- 新版以太坊Ethereum库ethersV5.0配合后端Golang1.18实时链接区块链钱包(Metamask/Okc)以及验签操作
区块链去中心化思想无处不在,比如最近使用个体抗原自检替代大规模的中心化核酸检测,就是去中心化思想的落地实践,避免了大规模聚集导致的交叉感染,提高了检测效率,本次我们使用Ethereum最新的ether ...
- 云小课|云小课带你玩转可视化分析ELB日志
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 云日志服务支持可视化查看 ...
- BST(二叉搜索树)
BST 基础芝士 给定一棵二叉树,每个节点有权值,定义"BST 性质"为: 对于树中的任意一个节点 \(x\) 都有: \(x\) 的权值大于 \(x\) 的左子树中任意节点的权值 ...
- GPT-4测评,大家先别急,图片输入还没来
昨天GPT-4朋友圈刷屏,我更新了一篇小文章,极简罗列GPT-4的一些情报: 1 ChatGPT Plus用户才可试用GPT-4 2 试用阶段每四小时最多100条信息 3 知识库还是2021年 4 上 ...
- 如何向已有的项目中添加C/C++代码?
第一步: 我们需要在src/main下面建立一个cpp目录,然后在其中写一个CMakeLists.txt文件和一个cpp文件,直接给出代码: #CMakeLists.txt文件# For more i ...
- VueTreeselect
https://www.vue-treeselect.cn/ 官网简介
- 第七届蓝桥杯大赛个人赛省赛(软件类)B组
3.凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~I代表1~9 ...
- 在 CMake 中使用 Qt windeploy 进行 install
install(TARGETS app BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINA ...
- 用线性二次模型建模大型数据中心,基于 MPC 进行冷却控制
目录 一个总述 reviews 0 abstract 1 intro 2 related work 3 DC cooling(问题定义) 4 MPC(method) 4.1 Model structu ...