命令行工具

1) jps:虚拟机进程状况工具
  1. JVM Process Status Tool 显示制定系统内所有的HotSpot虚拟机进程。
  2. 其他工具的使用,基本都要依赖这个工具获取的进程号。
  3. 使用格式:jps [-q] [-mlvV] [<hostid>]
  4. jps -help
  5. usage: jps [-help]
  6. jps [-q] [-mlvV] [<hostid>]
  7. Definitions:
  8. <hostid>: <hostname>[:<port>]
  9. 具体 [options]选项解析:
  10. -q:仅输出VM标识符,不包括classname,jar name,arguments in main method
  11. -m:输出main method的参数;
  12. -l:输出完全的包名,应用主类名,jar的完全路径名;
  13. -v:输出jvm参数
  14. -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 ,显示虚拟机的线程快照。

可视化工具

Jconsole:Java 监视与管理控制台

VisualVm:多合一故障处理工具