jstat使用方法

jstat用来监控jvm内存各区域运行状态,格式如下:

jstat 参数 vmid 监听间隔时间 监听次数

使用方法如,vmid可以通过jps查询:

jstat -gc 52113 1000 100

即:监听进程id为52113的应用的堆状况,包含eden、2个survior、old、perm、以及gc的时间等信息。

参数如下:

  • -class 监控类装载、卸载数量、总空间以及装载类所耗时间;
  • -gc 监控应用的堆状况,包含eden、2个survior、old、perm、以及gc的时间等信息;
  • -gccapacity 监控的内容与-gc基本相同,但输出的是java堆各个区域使用的最大和最小空间;
  • -gcutil 监控内容与-gc基本相同,但输出的都是空间的占总空间的比例;
  • -gccause 与-gcutil一样,但额外输出导致上次gc产生的原因;
  • -gcnew 监控新生代gc情况;
  • -gcnewcapacity 监控内容与-gcnew基本相同,输出的是最大和最小空间;
  • -gcold 监控老年的gc情况;
  • -gcoldcapacity 监控内容与-gc基本相同,输出的是最大和最小空间;
  • -gcpermcapacity 输出永久带最大和最小空间;
  • -compiler 输出JIT编译过的方法、耗时等信息;
  • -printcompilation 输出已经被JIT编译的方法。

下面详细介绍下jstat每个参数返回结果:

参数-class

Loaded:装载的类的数量 Bytes:装载类的字节大小;
Unloaded:卸载的类的数量  Bytes:卸载类的字节大小;
Time:装载和卸载类所花费的时间。

参数-gc

S0C:新生代第一个survivor(from survivor)的空间大小(字节);
S1C:新生代第二个survivor(to survivor)的空间大小(字节);
S0U:新生代第一个survivor(from survivor)使用空间大小(字节);
S1U:新生代第二个survivor(to survivor)的使用空间大小(字节);
EC:新生代eden空间大小(字节);
EU:新生代eden使用空间大小(字节);
OC:老年代空间大小(字节);
OU:老年代使用空间大小(字节);
PC:永久代空间大小(字节);
PU:永久代使用空间大小(字节);
YGC:major gc次数;
YGCT:major gc占用时间;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gccapacity

NGCMN:新生代初始化(最小)空间大小(字节);
NGCMX:新生代最大空间大小(字节);
NGC:新生代当前空间大小(字节);
S0C:新生代第一个survivor(from survivor)的空间大小(字节);
S1C:新生代第二个survivor(to survivor)的空间大小(字节);
EC:新生代eden空间大小(字节);
OGCMN:老年代初始化(最小)空间大小(字节);
OGCMX:老年代最大空间大小(字节);
OGC:老年代当前新生成的空间大小 (字节);
OC:老年代空间大小(字节);
PGCMN:永久代初始化(最小)空间大小(字节);
PGCMX:永久代最大空间大小(字节);
PGC:永久代当前新生成的空间大小(字节);
PC:永久代空间大小(字节);
YGC:major gc次数;
FGC:full gc次数。

参数-gcutil

S0:新生代第一个survivor(from survivor)的使用空间大小(百分比);
S1:新生代第二个survivor(to survivor)的使用空间大小(百分比);
E:新生代eden使用空间大小(百分比);
O:老年代使用空间大小(百分比);
P:永久代使用空间大小(百分比);
YGC:major gc次数;
YGCT:major gc占用时间;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gccause

S0:新生代第一个survivor(from survivor)的使用空间大小(百分比);
S1:新生代第二个survivor(to survivor)的使用空间大小(百分比);
E:新生代eden使用空间大小(百分比);
O:老年代使用空间大小(百分比);
P:永久代使用空间大小(百分比);
YGC:major gc次数;
YGCT:major gc占用时间;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间;
LGCC:最后一次垃圾回收的原因;
GCC:本次垃圾回收的原因。

参数-gcnew

S0:新生代第一个survivor(from survivor)的使用空间大小(百分比);
S1:新生代第二个survivor(to survivor)的使用空间大小(百分比);
S0U:新生代第一个survivor(from survivor)使用空间大小(字节);
S1U:新生代第二个survivor(to survivor)的使用空间大小(字节);
TT:对象在新生代存活的次数;
MTT:对象在新生代存活的最大次数;
DSS:期望的survivor大小(字节);
EC:新生代eden空间大小(字节);
EU:新生代eden空间使用的大小(字节);
YGC:major gc次数;
YGCT:major gc占用时间。

参数-gcnewcapacity

NGCMN:新生代初始化(最小)空间大小(字节);
NGCMX:新生代最大空间大小(字节);
NGC:当前新生代空间大小(字节);
S0CMX:新生代第一个survivor(from survivor)的最大空间大小(字节);
S0C:当前新生代第一个survivor(from survivor)的空间大小(字节);
S1CMX:新生代第二个survivor(to survivor)的最大空间大小(字节);
S1C:当前新生代第二个survivor(to survivor)的空间大小(字节);
ECMX:新生代eden最大空间大小(字节);
EC:当前新生代eden空间大小(字节);
YGC:major gc次数;
FGC:full gc次数。

参数-gcold

PC:永久代空间大小(字节);
PU:永久代使用空间大小(字节);
OC:老年代空间大小(字节);
OU:老年代使用空间大小(字节);
YGC:major gc次数;
FGC:full gc次数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gcoldcapacity

OGCMN:老年代初始化(最小)空间大小(字节);
OGCMX:老年代最大空间大小(字节);
OGC:老年代当前新生成的空间大小 (字节);
OC:老年代空间大小(字节);
YGC:major gc数;
FGC:full gc数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-gcpermcapacity

PGCMN:永久代初始化(最小)空间大小(字节);
PGCMX:永久代最大空间大小(字节);
PGC:永久代当前新生成的空间大小(字节);
PC:永久代空间大小(字节);
YGC:major gc数;
FGC:full gc数;
FGCT:full gc占用时间;
GCT:gc总共占用时间。

参数-compiler

Compiled:JIT编译执行次数;
Failed:JIT编译执行失败次数;
Invalid:JIT编译执行失效次数;
Time:JIT编译执行时间;
FailedType:最后一个JIT编译失败类型;
FailedMethod:最后一个JIT编译失败的类和方法。

参数-printcompilation

Compiled:JIT编译执行次数;
Size:方法生成的字节码大小(字节);
Type:编译类型;
Method:类名和方法名用来标识编译的方法。
类名使用/做为一个命名空间分隔符。
方法名是给定类中的方法。
上述格式是由-XX:+PrintComplation选项进行设置的。
时间: 2024-11-20 22:59:58

jstat使用方法的相关文章

jvm监控工具jps,jstat,jstack,jmap的使用方法

在平常运维分析jvm的时候通常用到的工具的jps,jstat,jstack,jmap用于分析tomcat遇到的各种问题 tomcat常见的问题有: OOM,线程死锁(lock dead),锁争用(lock contention),Java消耗过多的CPU 可以通过以上工具进行分析 生产常用分析方法快速入口: #jps        --> 查看运行的java进程 #jstat -gc 进程pid --> 查看进程新生代老年代的内存使用情况,年轻代老年代垃圾收集次数及时间 #jstat -gcc

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求.本文将对一些常用的JVM性能调优监控工具进行介绍,希望能起抛砖引玉之用.本文参考了网上很多资料,难以一一列举,在此对这些资料的

转:jstat命令详解

Jstat是JDK自带的一个轻量级小工具.全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控.可见,Jstat是轻量级的.专门针对JVM的工具,非常适用. jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量.使用时,需加上查看进程的进程id,和所选参数.参

jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令

公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令.供大家参考 1.Jstack 1.1   jstack能得到运行java程序的java stack和native stack的信息.可以轻松得知当前线程的运行情况.如下图所示 注:这个和thread dump是同样的结果.但是thread dump是用kill -3 pid命令,还是服务器上面少用kill为妙 1.2   命名行格式

jstat命令(Java Virtual Machine Statistics Monitoring Tool)

1.介绍 Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控: - 类的加载及卸载情况 - 查看新生代.老生代及持久代的容量及使用情况 - 查看新生代.老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间 - 查看新生代中Eden区及Survior区中容量及分配情况等 jstat工具特别强大,它有众多的可选项,通过提供多种不同的监控维度,使我们可以从不同的维度来了解到当前JVM堆的使用情况.详细查

【转】JVM统计监控工具-jstat

原文链接 http://www.javaranger.com/archives/575 jstat概要 帮助 jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ] generalOption 通用命令行选项 (-help, -options, or -version) outputOptions 若干个输出选项(output option),可以包括单个statOption,加上其他的-t, -h 或者-J选项

jstat命令使用

概述 jstat是一个可以用于观察java应用程序运行时相关信息的工具,功能非常强大,可以通过它查看堆信息的详细情况. 基本用法 jstat命令的基本使用语法如下: jstat -option [-t] [-h] pid [interval] [count] 选项option可以由以下值构成. -class:显示ClassLoader的相关信息. -compiler:显示JIT编译的相关信息. -gc:显示与gc相关的堆信息. -gccapacity:显示各个代的容量及使用情况. -gccaus

jstat -gcutil 指令的用法

Jstat 是JDK自带的一个轻量级小工具,全称"Java Virtual Machine statistics monitoring tool",主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控. 命令格式: jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] jstat -gcutil 用于统计和监控java进程的内存回收

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解. 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发中可能被很多人忽视(比如有的