抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

基础故障处理工具

1.jdk小工具命名方式

JDK的很多小工具的名字都参考了UNIX命令的命名方式。

2.jps(JVM Process Status Tool)

jps是虚拟机进程状况工具。jps名字和UNIX的ps命令类似,它的功能也和ps命令类似:

  • 可以列出正在运行的虚拟机进程,
  • 显示虚拟机执行主类(Main Class,main()函数所在的类)名称
  • 以及这些进程的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)。

2.1jps命令格式

1
jps [options] [hostid]
参数 描述
-q 只输出LVMID,省略主类的名称
-m 输出虚拟机进程启动时传递给主类main()函数的参数
-l 输出主类的全名,如果进程执行的是jar包,则输出JAR路径
-v 输出虚拟机进程启动时的JVM参数

jps还可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,参数hostid为RMI注册表中注册的主机名。

2.2jps执行样例

1
2
3
4
5
6
7
jps -l

4672 sun.tools.jps.Jps
7364 org.jetbrains.jps.cmdline.Launcher
24440 C:/Program
28808 org.jetbrains.jps.cmdline.Launcher
5128

3.jstat (JVM Statistics Monitoring Tool )

jstat是jdk自带的虚拟机统计信息监视工具。用于监视虚拟机各种运行状态信息的工具。它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾手机、即时编译等运行时数据,在只提供了控制台的服务器上,它将是在软件运行期间定位虚拟机性能问题的常用工具。

3.1命令格式

1
jstat [option vmid interval[s|ms] [count]] ]

对于命令格式中的VMID与LVMID需要特别说明一下:如果是本地虚拟机进程,VMID与LVMID是一致的;如果是远程虚拟机进程,那VMID的格式应当是:

1
[protocol:][//]lvmid[@hostname[:port]/servername]

参数interval和count代表查询间隔和次数,如果省略这2个参数,说明只查询一次。假设需要每250毫秒查询一次进程2764垃圾收集状况,一共查询20次,那命令应当是:
jstat -gc 2764 250 20
选项option代表用户希望查询的虚拟机信息,主要分为三类:类加载、垃圾收集、运行期编译状况。详细请参考表4-2中的描述。

选项 作用
-class 监视类加载、卸载数量、总空间以及类加载所消耗的时间
-gc 监视java堆情况,包括Eden区、survivor区、老年代、永久代等的容量,已用空间,垃圾收集时间合计等信息
-gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间
-gcutil 监视内容与-gc基本相同,但输出主要关注以使用空间占总空间的百分比
-gccause 监视内容与-gcutil功能一样,但是会额外输出导致上一次垃圾收集产生的原因
-gcnew 监视新生代垃圾收集状况
-gcnewcapacity 监视内容与-gc基本相同,但输出主要关注使用到的最大、最小空间
-gcold 监视老年代垃圾收集状况
-gcoldcapacity 监视内容与-gcold基本相同,但输出主要关注使用到的最大、最小空间
-gcmetacapacity 输出元空间使用到的最大、最小空间
-compiler 输出即时编译器编译过的方法,耗时等信息
-printcompilation 输出已经被即时编译的方法
缩写 描述
S0C 第一个幸存区的大小
S1C 第二个幸存区的大小
S0U 第一个幸存区的使用大小
S1U 第二个幸存区的使用大小
EC 伊甸园区的大小
EU 伊甸园区的使用大小
OC 老年代大小
OU 老年代使用大小
MC 方法区大小(元空间)
MU 方法区使用大小
CCSC 压缩类空间大小
CCSU CCSU:压缩类空间使用大小
YGC 年轻代垃圾回收次数
YGCT 年轻代垃圾回收消耗时间,单位s
FGC 老年代垃圾回收次数
FGCT 老年代垃圾回收消耗时间,单位s
GCT 垃圾回收消耗总时间,单位s

3.jinfo Java配置信息工具

4.jmap java内存映像工具

5.jhat 虚拟机堆转储快照分析工具

6.jstack Java堆栈跟踪工具

基础工具总结

评论