JVM监控

命令 说明
jps 显示JAVA进程
jstat JAVA虚拟机运行状态监控,运行时数据
jinfo JAVA虚拟机配置信息,如启动参数等
jmap 生成虚拟机堆内存转储快照(dump文件)
jhat 分析dump文件
jstack 查看虚拟机的线程快照

1、jmap:Java内存印象工具

语法

jmap [option] pid

options参数

  • -dump:生成堆转储快照。-dump:[live, ]format=b,file=,live子参数说明是否只dump出存活的对象
  • -finalizerinfo:显示F-Queue中等待Finalizer线程执行finalize方法的对象
  • -heap:显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等
  • -histo:显示堆中对象统计信息,包括类、实例数量、合计容量
  • -permstat:显示永久代的内存状态
  • -F:当虚拟机对-dump没有响应时强制生成dump快照

应用

  • jmap -dump:format=b,file=文件名.dump pid
    生成dump文件,用visualvm分析
  • jmap -heap pid
    打印heap的概要信息,垃圾收集器,heap的配置及使用情况,用于判断目前heap的使用以及垃圾回收的情况
  • jmap -histo pid
    打印堆的对象统计情况。jmap -histo:live pid 打印存活的对象情况,jvm会先触发GC

2、jstat:虚拟机统计信息监视工具

语法

jstat [option vmid [interval[s|ms] [count]]]

options参数

  • -class:监视类装载、卸载数量、总空间、以及类装载耗费时间
  • -gc:监视Java堆状况,Eden区、两个Survivor区、老年代、永久代容量、已用空间、gc时间合计等信息
  • -gccapacity:监视内容与-gc基本相同,主要关注Java堆各个区域使用到的最大、最小空间
  • -gcutil:监视内容与-gc基本相同,主要关注已用空间占总空间的百分比
  • -gccause:与-gcutil功能一样,会输出上一次gc发生的原因
  • -gcnew:监视新生代gc状况
  • -gcnewcapacity:与-gcnew基本相同,主要关注使用到的最大最小空间
  • -gcold:监视老年代的gc状况
  • -gcoldcapacity:与-gcold基本相同,主要关注使用到的最大最小空间
  • -gcpermcapacity:输出永久代使用到的最大最小空间
  • -compiler:输出JIT编译器编译过的方法、耗时等信息
  • -printcompilation:输出已经被JIT编译的方法

应用

  • 每s秒查询一次进程pid的垃圾收集情况,一共查询count次
jstat -gc [pid] [s] [count]

3、jinfo:Java配置信息工具

语法

jinfo [option] pid

options 参数

  • -flag:查询参数的系统默认值

应用

  • 查询CMSSInitiatingOccupancyFraction参数值
jinfo -flag CMSSInitiatingOccupancyFraction [pid]

你可能感兴趣的:(JVM监控)