zl程序教程

您现在的位置是:首页 >  其它

当前栏目

jstat 使用技巧

技巧 使用 jstat
2023-09-11 14:16:58 时间

jstat (JVM Statistics Monitoring Tool) 
作用
    用于监控虚拟机各种运行状态信息的命令行工具。可以显示本地或者远程虚拟机进程中的类转载、内存、垃圾收集、JIT编译等运行数据。
 
 用法:
    jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
 
1、option
类转载相关
    -class: 显示ClassLoader相关信息
    
   
垃圾回收相关
      -gc : 显示GC相关的堆信息。Eden、Survivor、Young、Old等的容量,GC时间合计等信息;

      

      
      -gccapacity∶ 显示内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。
      -gcutil∶ 显示内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比。
        
      -gccause∶ 与-gcutil功能一样,但是会额外输出导致最后一次或当前正在发生的GC产生的原因。     

     

      -gcnew∶ 显示新生代GC状况
      -gcnewcapacity∶ 显示内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间
      -geold∶ 显示老年代GC状况
      -gcoldcapacity∶ 显示内容与-gcold基本相同,输出主要关注使用到的最大、最小空间
      -gcpermcapacity∶显示永久代使用到的最大、最小空间。


JIT相关
        -compiler: JIT编译过的方法,耗时等信息;

        
       -printcompilation: 输出已经被JIT编译的方法
       
 

 -t :  程序开始执行到当前时间;
    


 -h: 打印表头,n 每隔n行数据,打印表头
    
     
 2、interval  用于指定输出统计数据的周期、单位毫秒(间隔);
    
 
3、 count 用于指定查询总次数;
    
 
 
jstat还可以用来判断是否出现内存泄漏
第1步∶
    在长时间运行的 Java 程序中,我们可以运行jstat命令连续获取多行性能数据,并取这几行数据中 OU 列(即已占用的老年代内存)的最小值。
 
第2步∶
    然后,我们每隔一段较长的时间重复一次上述操作,来获得多组 OU 最小值。如果这些值呈上涨趋势,则说明该 Java 程序的老年代内存已使用量在不断上涨,这意味着无法回收的对象在不断增加,因此很有可能存在内存泄漏。