jvm基础之jdk工具使用

Posted 暖爸的java家园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm基础之jdk工具使用相关的知识,希望对你有一定的参考价值。

今天一起学习下jdk自带的分析监控工具(基于HotSpot)。

今天结束的几种都是常用的工具,其他工具请小伙伴们自行摸索。

jps    JVM进程状况工具(JVM Process Status Tool),主要用于显示系统上的HotSpot JVM的Java进程信息。

jstat  JVM统计信息监测工具(JVM Statistics Monitoring Tool),主要用于监测并显示JVM的性能统计信息

jinfo  Java配置信息工具(Java Configuration Information),用于打印指定Java进程、核心文件或远程调试服务器的配置信息。

jmap  Java内存映像工具(Java Memory Map),主要用于打印指定Java进程、核心文件或远程调试服务器的共享对象内存映射或堆内存细节。

jhat  Java堆转储分析工具(Java Heap Analysis Tool),主要用于分析Java堆内存中的对象信息

jstack  Java堆栈跟踪工具,主要用于打印指定Java进程、核心文件或远程调试服务器的Java线程的堆栈跟踪信息。

一,jps(JVM进程状况工具)

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

主要的options如下 :

-q  输出jvm进程的本地虚拟机ID,即本地操作系统的进程ID

-m 输出虚拟机进程启动时传递给主类main方法的参数

-l  输出主类的全名或jar包路径

-v 输出虚拟机进程启动时的jvm参数。

hostid为生成进程报告的主机的主机标识符。hostid可能包括表示通讯协议、端口号等,本机则为空。格式:[protocol:][[//]hostname][:port][/servername]

如下图所示:

二,jstat JVM统计信息监视工具

jstat命令格式:

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

vmid如果是本地虚拟机进程,则是本地进程ID(即LVMID),远程虚拟机则与jps的hostid一致。

interval表示查询时间间隔,单位秒或毫秒

count 表示查询次数

option选项

-class  类加载器的统计信息

-compiler JIT(即时编译器)的方法,耗时等统计

-gc 监视java堆的状况,包括Eden区,两个survivor区,老生代等垃圾回收的信息。

-gccapacity  Java各代区域以及对应空间的容量统计

-gccause  垃圾回收的摘要信息, 以及上一次垃圾回收事件的原因。

-gcnew  新生代区的行为统计

-gcnewcapacity  新生代区及其对应空间的大小统计。

-gcold    老年代GC的行为统计。

-gcoldcapacity  老年代GC的行为统计及对应空间大小等统计。

-gcpermcapacity  永久代的空间统计。

-gcutil    GC的统计信息。

-printcompilation  输出以被JIT编译的方法。

如下图所示是-gc的信息 : S0 S1表示两个survivor区占的空间,E表示Eden区占的空间,YGC和YGCT表示MinorGC的次数和耗时,FGC和FGCT表示Full GC的次数和耗时.

jvm基础之jdk工具使用

jstat -gc ID

如下图是,JIT编译的方法信息:

-printcompilation

三,jinfo java配置信息工具

格式;jinfo [option] pid

option

-flag 虚拟机启动的参数查看,部分参数可直接修改

-sysprops 虚拟机系统参数信息

使用示例:

jinfo -flag GCLogFileSize 8817

-XX:GCLogFileSize=1048576

四,jmap Java内存映像工具

用于生成堆内存转储快照文件。

命令格式:jmap [ option ] vmid

-dump:生成jvm 堆存储快照 ,dump格式:-dump:[live,]format=b,file=<filename> 使用二进制形式,输出jvm的heap内容到文件, live子选项是可选的,假如指定live选项,那么只输出活的对象到文件。

-heap:显示jvm堆的详细信息

-histo:打印jvm heap的统计信息。其输出信息包括类名,对象数量,对象占用大小。

-permstat:打印永久代的内存情况

-F 强制生成dump快照

五,jhat 堆存储快照分析工具

使用jhat 文件名  后,等待Server is ready提示信息,然后在浏览器输入http://ip:7000,可以看到分析结果。

六,jstack 线程堆栈跟踪工具

格式:jstack [ option ] vmid

选项:

-F  强制输出堆栈信息

-l 除堆栈外,附加锁的信息

-m 如果调用本地方法,显示C/C++的堆栈。


java书籍推荐: