在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问题排查工具单

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览106372 人正在系统学习中

[转帖]【JVM】JDK命令行工具的更多相关文章

  1. JVM-JDK命令行工具

    JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. ...

  2. jdk命令行工具(一)

    1.概述 熟悉java开发的人应该都知道在jdk的bin目录下有许多的工具,这些工具主要用于监视虚拟机和故障处理.这些故障处理工具被Sun公司称作为“礼物”附赠给JDK的使用者,并在软件的使用说明中把 ...

  3. JVM性能监控工具(一)-jdk命令行工具

    转载:http://blog.csdn.net/top_code/article/details/51456186 当系统出bug需要定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处 ...

  4. JVM调优前戏之JDK命令行工具---jhat

    在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下 ...

  5. JVM调优前戏之JDK命令行工具---jstack

    在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下 ...

  6. JVM 常用命令行工具

    本文部分摘自<深入理解 Java 虚拟机第三版> 基础故障处理工具 Java 开发人员肯定都知道 JDK 的 bin 目录下有许多小工具,这些小工具除了用于编译和运行 Java 程序外,打 ...

  7. Java之jdk命令行工具详解

    JPS---虚拟机进程状况工具 常用的参数: -l 输出Java应用程序的main class的完整包 -q 仅显示pid,不显示其它任何相关信息 -m 输出传递给main方法的参数 -v 输出传递给 ...

  8. JDK命令行工具

    jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数 jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapd ...

  9. JVM常用命令行工具1

    1.jps [options][hostid]:查看虚拟机进程状况 -l 输出主类全名,如果进程执行的是jar包,输出jar包路径.-q 只输出LVMID. -m输出虚拟机进程启动时传递给主类main ...

  10. jdk命令行工具系列

    虚拟机堆转储快照分析工具使用jmap等方法生成java的堆文件后jhat:虚拟机堆转储快照分析工具 导出程序执行的堆信息 jps jps -l jmap -dump:format=b,file=D:/ ...

随机推荐

  1. 如何花“一点点小钱”突破华为云CCE服务的“防线”

    摘要:有没有方法绕开CCE的限制,自由的调用K8s的API呢?有还便宜,2.4元/集群/天. 申明:所有的一切都是为了使得华为云可以更好,而不是为了diss它. 通过华为云购买多个K8s集群,又想使用 ...

  2. 云小课|GaussDB(DWS)数据存储尽在掌控,冷热数据切换自如

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: GaussDB( ...

  3. 火山引擎 DataTester 科普:A/B 实验常见名词解释

    DataTester 是字节跳动在 2019 年正式通过火山引擎数智平台推出的对外服务的 A/B 实验工具,它基于先进的底层算法,提供科学分流能力,提供智能的统计引擎,实验结果可靠有效,助力业务决策. ...

  4. HanLP — HMM隐马尔可夫模型 -- 训练&预测

    BMES => B-begin:词语开始.M-middle:词语中间.E-end:词语结束.S-single:单独成词 训练的过程,就是求三个矩阵的过程 初始概率矩阵 转移概率矩阵 发射矩阵 每 ...

  5. 玩转Python:处理图像,两个非常重要的库,很实用,附代码

    在Python中,图像处理是一个涉及图像分析.编辑和处理的广泛领域.有几个流行的库通常用于处理图像,每个库都有其特殊的功能和优势.以下是一些常用的Python图像处理库: 1. Pillow (PIL ...

  6. 数字U家,即刻出发!2022联合利华黑客马拉松启动!

    2022联合利华黑客马拉松火热报名倒计时! 欢迎各领域的个人及组织团队参与 人工智能.数据挖掘.市场规模预测.原材料与包装风险控制.AR/VR.低碳.消费者偏好研究等超多创新赛题,任选其一. 作为快消 ...

  7. PySpark 报错 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

    解决方案: mv mysql-connector-java-8.0.20.jar $SPARK_HOME/jars/ 驱动文件mysql-connector-java-8.0.20.jar是从mave ...

  8. 2019年第十届蓝桥杯国赛C++A组

    蓝桥杯历年国赛真题汇总:Here 最后编辑时间: 2021年5月27日 统一声明 如果不写默认带有常用头文件 如果不表明主函数默认表示在 void solve(){} 默认使用 using names ...

  9. 分布式搜索引擎 Elasticsearch 的架构分析

    一.写在前面 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据 ...

  10. 如虎添翼!高德地图+Serverless 护航你的假日出行

    ​ 作者 | 刘金龙(福辰) 高德团队 引言 ​ "前方事故多发地段,请注意保持车距..." "您已疲劳驾驶,请注意休息..." "前方经过泰山旅游景 ...