jdk常用工具命令总结

jdk
主要介绍 jps、jstat、jinfo、jmap、jhat、jstack 等几个JDK命令行工具
用工具来分析数据,以此来获取结果。下面包含四个数据依据。

  • 异常堆栈
  • 运行日志
  • GC日志
  • 堆转储快照(heapdump/javacore文件)
  • 线程快照(threaddump/hprof文件)

在JDK的bin目录下有很多监视虚拟机和故障处理的工具。文章将讲解多个关于JDK的命令行工具。

1. JPS(JVM Process Status Tool)
描述: 虚拟机进程状态管理工具;其他工具在使用时需要通过该工具来获取LVMID;

1.1 功能
列举正在运行的虚拟机进程; 进程本地虚拟机唯一ID(Local Virtaul Machine Identifer LVMID)
显示虚拟机执行主类(main()方法所在的类)的名称
1.2 参数
注: options (选项) ; 本文将 options 理解为工具的参数。

jps 命令格式: jps [ options ] [hostid]

参数 描述
-l 输出主类的全名,如果是执行的jar,则输出jar的路径
-v 输出JVM启动时的JVM参数

当然常用参数还是 -l ,主要是为了获得ID值。

1.3 实例

启动项目之后、可以使用命令查询运行信息

C:\Program Files\Java\jdk1.8.0_141\bin>jps -l
10048 sun.tools.jps.Jps
6832 org.jetbrains.jps.cmdline.Launcher
976
7092 com.intellij.rt.execution.application.AppMain
4536 org/netbeans/Main
3484

2 Jstat (JVM Statistics Monitoring Tool)
2.1 描述:虚拟机统计信息监控工具
监视虚拟机各种运行状态信息的命令行工具;

它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形化界面,只提供纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。(jstat工具参数还是比较多,信息还是比较丰富)

2.2 命令格式
jstat [options] vmid [interval [s|ms] [count]] ] (远程命令格式略有不同)

jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

2.3 主要工具参数

-gcnew 新生代
-gccause 与-gcutil相似,但是会输出上一次GC的原因

-gccause与-gcutil相似,但是会输出上一次GC的原因

参数 功能作用
-class 监视类装载、卸载数量,以及总空间和装载耗时等
-gc 监视堆中 eden、 survivor 、老年代、元空间等空间大小和已使用情况,GC次数、耗时等
-gcmetacapacity 元空间
-gcutil 与gc 类似,但是注重的是占比情况
-printcompilation 输出已经被JIT重新编译的方法
-gcoldcapacity 输出已经被JIT重新编译的方法
-gcnew 新生代

2.4 实验
通过实验来验证jstat相关参数。

2.4.1 实验一
使用-gc 命令; 为了能够更加直观,在程序中设置了VM相关参数; 然后运行、查看结果并分析。
2.4.2 jstat -gc 运行并查看结果
jps使用

参数 解析
S0C surivor(s0)区域大小
s1c s1区大小
S0U S0的使用大小
S1U S1的使用大小
EC eden可以使用的大小
EU eden已经使用
OC 老年代可以使用的大小
OU 老年代已经使用的带下
MC 元空间可以使用的大小
MU 元空间已经使用的大小
CCSC 压缩类空间大小
CCSU 压缩类已经使用大小
YGC 年轻代垃圾回收次数
YGCT 年轻代垃圾回收总耗时
FGC 老年代垃圾回收次数
FGCT 老年代垃圾回收总耗时
GCT 垃圾回收消耗总时间

3 jinfo 工具
jinfo 工具, Java配置信息工具; 通过命令可以查看配置信息参数

参数格式: jinfo [option] ipd
在控制台输入 jinfo ,则会提示相关命令参数,可借助提示执行相关命令。
-flag  to print the value of the named VM flag
-flag [+|-] to enable or disable the named VM flag
-flag = to set the named VM flag to the given value
-flags to print VM flags
-sysprops to print Java system properties
to print both of the above

4 jmap (JVM Memory Map for Java)

4.1 描述

jmap(JVM Memory Map for java)命令用于生成堆转储快照; 当然还可以使用-XX:HeapDumpOnOutOfMemoryError 参数,可以让虚拟机在OOM异常之后自动生产dump文件。

4.2 功能点

  • 可以获取dump文件,它还可以查询 finalize 执行队列
  • java堆信息
  • 空间使用率、当前使用的那种收集器等

4.3 jmap工具主要选项

选项 作用
dump 生成Java堆转储快照。 格式 -dump:[live,]format=b,file=< filename >,其中live子参数说明是否只dump出存活的对象
finalizerinfo 显示F-Queue中等待Finalizer线程执行finalize方法的对象
heap 显示java堆详细信息,如使用哪种收集器、参数配置、分代状况等
histo 显示堆中对象统计信息,包括类,实例数量、合计容量
F 当虚拟机进程对 -dump选项没有响应时,可使用这个选项强制生成dump快照
原文链接:https://www.e404e.cn/jdk%e5%b8%b8%e7%94%a8%e5%b7%a5%e5%85%b7%e5%91%bd%e4%bb%a4%e6%80%bb%e7%bb%93.html,转载请注明出处。
0

评论0

请先

站点提示

小坏说Java,因本站资源都是站长亲自录制的资源,或者网上收集、如侵犯了您的权益、请联系站长删除、为了保证大家使用没有任何问题,更新有点慢、如遇到不可下载的、请加群下载 Q群:530383698
没有账号?注册  忘记密码?

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码