目前一直在用J9,对HS的一些命令有些淡忘,最近用到时查了些资料,整理了一下备用(基于Linux)。
jps 是用来查看HS里面所有进程的信息,包括状态、进程ID,启动路径等。
jps [options] [hostid]
-l 输出主类全名。
-v 输出虚拟机进程启动的jvm参数。
-m 输出启动时传递给main函数的参数。
官方参考:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html
jstat 用于收集Hotspot虚拟机各方面运行数据。
jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ] (间隔[ms]毫秒 监控[count]次)
需要注意的是这个命令受安全策略的限制,需要额外设定。
-class 类装载相关信息。
-compiler JIT编译器编译过的方法、耗时等。
-gc java堆信息和垃圾回收状况。
-gccapacity 关注java堆各个区的最大和最小空间。
-gccause 类似gcutil,额外输出导致上一次gc的原因。
-gcnew 新生代gc状况。
-gcnewcapacity 关注新生代gc使用的最大和最小空间。
-gcold 老年代gc状况。
-gcoldcapacity 关注老年代gc使用的最大和最小空间。
-gcpermcapacity 关注持久代gc使用的最大和最小空间。
-gcutil 关注已使用空间占总空间比例。
-printcompilation 输出已经被JIT编译的方法。
官方参考:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html
jstack 显示虚拟机的线程栈信息
jstack [ option ] pid
类似kill -3命令。只在Solaris和Linux的JDK版本里面才有。
-l 除堆栈外,显示锁的附加信息 。
-F 当请求不被响应时,强制输出线程堆栈 。
-m 混合模式,打印java和本地C++调用的堆栈信息(默认)。
官方参考:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstack.html
jinfo 显示虚拟机的配置信息
jinfo [ option ] pid
-flag name 打印虚拟机该参数对应的值。
-flag [+\-]name 使该参数生效或失效。
-flag name=value 修改相应参数的值。
-flags 打印传给jvm的参数值。
-sysprops 打印System.getProperties()信息。
官方参考:http://docs.oracle.com/javase/7/docs/technotes/tools/share/info.html
jmap 用于生成虚拟机的内存快照信息
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
-dump 生成堆dump文件,格式为: -dump:[live,]format=b,file=
-heap 显示java堆的详细信息,包括垃圾回收期、堆配置和分代信息等 。
-histo 显示堆中对象的统计信息,包括类名称,对应的实例数量和总容量 。
-permstat 统计持久代中各ClassLoader的统计信息。
官方参考:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html
jhat Heap分析工具
jhat [ options ]
JDK1.7的实验用式命令。
官方参考:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jhat.html
官方参考总链接:
jvisualvm:
http://docs.oracle.com/javase/7/docs/technotes/tools/share/jvisualvm.html