命令行工具
1) jps:虚拟机进程状况工具
JVM Process Status Tool, 显示制定系统内所有的HotSpot虚拟机进程。
其他工具的使用,基本都要依赖这个工具获取的进程号。
使用格式:jps [-q] [-mlvV] [<hostid>]
jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:<port>]
具体 [options]选项解析:
-q:仅输出VM标识符,不包括classname,jar name,arguments in main method;
-m:输出main method的参数;
-l:输出完全的包名,应用主类名,jar的完全路径名;
-v:输出jvm参数 ;
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 ;
参考 :java jps命令使用解析
2) jstat:虚拟机统计信息监视工具
JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据。
使用格式:jstat [Options] vmid [interval] [count]
参数说明:
Options,选项,主要分为3类:类装载、垃圾收集、运行期编译状况。
vmid,VM的进程号,即当前运行的 java 进程号
interval,间隔时间,单位为秒或者毫秒
count,打印次数,如果缺省则打印无数次
例:jstat -gc 6166 5000
意思是:每5秒查询一次进程号6166的进程的垃圾回收情况。
Options的具体含义
选项 | 含义 |
---|---|
class| 用于查看类加载情况的统计
compiler| 用于查看HotSpot中即时编译器编译情况的统计
gc| 用于查看JVM中堆的垃圾收集情况的统计
gccapacity| 用于查看新生代、老生代及持久代的存储容量情况
gccause| 用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃 圾收集的原因。
gcnew| 用于查看新生代垃圾收集的情况
gcnewcapacity| 用于查看新生代的存储容量情况
gcold| 用于查看老生代及持久代发生GC的情况
gcoldcapacity| 用于查看老生代的容量
gcpermcapacity| 用于查看持久代的容量
gcutil| 用于查看新生代、老生代及持代垃圾收集的情况
printcompilation| HotSpot编译方法的统计
3) jinfo:Java配置信息工具
Configuration Info for Java 显示虚拟机配置信息。
4) jmap:Java内存映像工具
Memory Map for java,生成虚拟机的内存转储快照(heapdump文件)
5) jhat:虚拟机堆转储快照分析工具
JVM Heap Dump Browser,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果。
6) jstact:Java堆栈跟踪工具
Stack Trace for Java ,显示虚拟机的线程快照。