JVM自带性能分析工具介绍——jstat

前言

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测,这里我们就简要介绍下这几个命令的作用和使用方法。

命令作用
jps基础工具
jstack查看某个Java进程内的线程堆栈信息
jmapjmap导出堆内存,然后使用jhat来进行分析
jhatjmap导出堆内存,然后使用jhat来进行分析
jstatJVM统计监测工具
hprofhprof能够展现CPU使用率,统计堆内存使用情况

jstat

JVM统计监测工具,用来查看各个区内存和GC的情况
基本语法

  jstat <option> [-t] [-h] <pid>  <interval> <count>

pid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。-t可以在打印的列加上Timestamp列,用于显示系统运行的时间,-h可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头interval是采样时间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为250ms,采样数为6:
option参数:

参数作用
-gcGC堆状态
-gcutilGC统计汇总
-class类加载器
-compilerJIT
-gccapacity各区大小
-gccause最近一次GC统计和原因
-gcnew新区统计
-gcnewcapacity新区大小
-gcold老区统计
-gcoldcapacity老区大小
-gcpermcapacity永久区大小
-printcompilationHotSpot编译统计

其中jstat -gcutil 是最常用的命令,例子:

[esv@bz3esvbs0ap1001 ~]$ jstat -gcutil 46924
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
  0.00  90.62  12.08  77.62  98.34  95.95   3933  225.161     4    1.371  226.533
参数作用
S0年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E年轻代中Eden(伊甸园)已使用的占当前容量百分比
Oold代已使用的占当前容量百分比
Pperm代已使用的占当前容量百分比
YGC从应用程序启动到采样时年轻代中gc次数
YGCT从应用程序启动到采样时年轻代中gc所用时间(s)
FGCT从应用程序启动到采样时old代(全gc)gc次数
GCT从应用程序启动到采样时gc用的总时间(s)
堆内存 = 年轻代 + 年老代 + 永久代  
年轻代 = Eden区 + 两个Survivor区(FromTo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jstat是Java Virtual Machine统计监测工具(Java Virtual Machine Statistics Monitoring Tool)的缩写。它可以用来监测JVM内部的各种运行时数据,包括堆内存、GC情况、类加载器等方面的信息。在调优JVM性能时,jstat是一个非常有用的工具。 使用jstat需要使用命令行,并且需要指定三个参数:监测对象、监测间隔时间和监测次数。下面是一个示例命令: ``` jstat -gcutil 1000 10 ``` 这个命令表示每隔1秒钟(1000毫秒)监测一次GC情况,一共监测10次。其中的“-gcutil”表示要监测的对象是GC情况,可以使用其他参数指定其他的监测对象。 jstat的输出结果包括多列数据,每列数据的含义如下: - S0:第一个幸存区(Survivor)的使用情况。 - S1:第二个幸存区(Survivor)的使用情况。 - E:伊甸园区(Eden)的使用情况。 - O:老年代(Old)的使用情况。 - P:永久代(Permanent)的使用情况。 - YGC:从应用程序启动到采样时发生的Young GC次数。 - YGCT:从应用程序启动到采样时Young GC所用的时间(单位秒)。 - FGC:从应用程序启动到采样时发生的Full GC次数。 - FGCT:从应用程序启动到采样时Full GC所用的时间(单位秒)。 - GCT:从应用程序启动到采样时GC所用的总时间(单位秒)。 除了上述命令外,jstat还可以使用其他参数来监测不同的对象和数据,具体可参考jstat的帮助文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值