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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值