[转帖]【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:/ ...
随机推荐
- 神经网络基础篇:详解向量化逻辑回归(Vectorizing Logistic Regression)
向量化逻辑回归 讨论如何实现逻辑回归的向量化计算.这样就能处理整个数据集,甚至不会用一个明确的for循环就能实现对于整个数据集梯度下降算法的优化 首先回顾一下逻辑回归的前向传播步骤.所以,如果有 \( ...
- linux_文本处理工具详细介绍
文本处理工具 1. grep工具 grep是行过滤工具:用于根据关键字进行行过滤 语法和选项 语法: # grep [选项] '关键字' 文件名 常见选项: OPTIONS: -i: 不区分大小写 - ...
- 容器、Docker、虚拟机,别再傻傻分不清
摘要:容器技术起源于Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源.尽管容器技术已经出现很久,却是随着Docker的出现而变得广为人知. 容器技术起源于Linux,是一种内核 ...
- Scala Http请求工具类
import java.io.IOException import java.util import org.apache.http.client.ClientProtocolException im ...
- Linux CentOS 8 安装DHCP服务
DHCP 如果虚拟机没有 /etc/dhcp/dhcpd.conf 文件,这可能是因为 DHCP 服务器软件包尚未安装,或者安装后配置文件未创建. 要创建 DHCP 服务器配置文件 dhcpd.con ...
- Windows线程开发
Windows线程开发 1.线程基础 Windows线程是可以执行的代码实例.系统十一线程为单位调度程序.一个程序当中可以有多个线程,实现多个任务的处理. Windows线程的特点: 线程都具有1个I ...
- MIR7创建预制发票BAPI
1.事务代码MIR7 前台输入采购订单等相关字段进行开票 2.代码实现 调用BAPI:BAPI_INCOMINGINVOICE_PARK创建发票 "--------------------@ ...
- 微软商店上架Windows&Office破解工具,并获5星好评?
大家好,我是DD! 最近真的除了俄乌冲突之外,其他消息似乎都被淹没了,连狗血的娱乐圈都哑火了. 但昨天在微信群(点击加入)里的这张图引起了我的注意... 据群友称Windows应用商店上架了一个破解W ...
- myeclipse过期问题
安装myeclipse后就会遇到过期问题.如下代码永久解决过期问题. import java.io.BufferedReader; import java.io.IOException; import ...
- webservice(AXIS)客户端生成方法
如何根据apache的axis生成的WebServices服务接口生成客户端代码一.下载axis-bin-1_4.zip 官网下载地址: https://mirrors.bfsu.edu. ...