命令行工具
jps
JVM Process Status Tool
,显示指定系统内所有的HotSpot
虚拟机进程
jstat
JVM Statistics Monitoring Tool
,用于收集HotSpot
虚拟机各方面的运行数据。
示例
jstat -gc 12306 250 20
每250
毫秒查询一次进程12306
垃圾收集状况,一共查询20
次
###详细参数
S0
Survior区使用比例, S1
Survior区使用比例
E
新生代区使用比例, O
老年代区使用比例, P
永久代区使用比例, M
元数据区使用比例
YGC
年轻代垃圾回收次数, YGCT
年轻代垃圾回收时间, FGC
老年代垃圾回收次数, FGCT
老年代垃圾回收时间, GCT
垃圾回收总时间
jinfo
查询进程12306
的虚拟机配置信息
示例
jinfo 12306
Configuration Info for Java
,显示虚拟机配置信息
jmap
Memory Map for Java
,生成虚拟机的内存转储快照(heapdump文件)
基本参数:
-dump:[live,]format=b,file=
使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.
-finalizerinfo
打印正等候回收的对象的信息.
-heap
打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.
-histo[:live]
打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
-permstat
打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.
-F
强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效.
-h | -help
打印辅助信息
-J
传递参数给jmap启动的jvm.
pid 需要被打印配相信息的java进程id
jhat
JVM Heap Dump Browser
,用于分析heapdump
文件,它会建立一个HTTP/HTML
服务器,让用户可以在浏览器在查看分析结果
jstack
Stack Trace for Java
,显示虚拟机的线程快照
jmap -heap 1159
jmap -histo 1159
jstack 1159
jmap -dump:format=b,file=jvm.log 1159
jhat tomcat.bin