jps
列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID (Local Virtual Machine Identifier,LVMID)
命令格式 jps -option
-q 只输出LVMID,省略主类的名称
-m 输出虚拟机进程启动时传递给主类main()函数的参数
-l 输出主类的全名, 如果进程执行的是Jar包,输出Jar路径
-v 输出虚拟机进程启动时JVM参数
jstat
用于监视虚拟机各种运行状态信息的命令行工具.显示本地或者远程虚拟机进程中的类装载,内存,垃圾收集JIT编译等运行数据
命令格式 jstat -option VMID [interval] [count]
-class 监视类装载,卸载数量,总区间及类装载所耗费的时间
-gc 监视Java堆状况, 包括Eden,两个survivor,老年代,永久代等的容量
-gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用的最大,最小空间
-gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
-gccause 监视-gcutl功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生带GC状况
-gcold 监视老年代GC状况
-compiler 输出JIT编译器编译过的方法,耗时等信息
jinfo
实时地查看和调整虚拟机各项参数
命令格式 jinfo -option VMID
jinfo -flag CMSInitiatingOccupancyFraction 1444
jmap
获取dump文件,finalize执行队列,java堆和永久代详细信息 如空间使用率和使用哪种收集器
命令格式 jmap -option VMID
-dump 生成Java堆转储快照
-fanalizerinfo 显示在F-Qucue中等待Finalizer线程执行finalize方法的对象
-heap 显示Java堆详细信息,如使用哪种回收器,参数配置,分代状况
-histo 显示堆中对象统计信息,包括类,实例数量,合计容量
-permstat 以ClassLoader为统计口径显示永久代内存状态
jhat
与jmap搭配使用 来分析jmap生成的堆转储快照
jstack
用于生成虚拟机当前时刻的线索快照
命令格式 jstack -option VMID
-F 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用到本地方法的话 可以线索C/C++的堆栈