您的位置:首页 > Web前端 > JavaScript

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

2017-09-18 17:27 411 查看

前言

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区(From和To)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐