Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。参考格式如下:
jstat -options
可以列出当前JVM版本支持的选项,常见的有
- l class (类加载器)
- l compiler (JIT)
- l gc (GC堆状态)
- l gccapacity (各区大小)
- l gccause (最近一次GC统计和原因)
- l gcnew (新区统计)
- l gcnewcapacity (新区大小)
- l gcold (老区统计)
- l gcoldcapacity (老区大小)
- l gcpermcapacity (永久区大小)
- l gcutil (GC统计汇总)
- l printcompilation (HotSpot编译统计)
1、jstat –class<pid> : 显示加载class的数量,及所占空间等信息。
显示列名 |
具体描述 |
Loaded |
装载的类的数量 |
Bytes |
装载类所占用的字节数 |
Unloaded |
卸载类的数量 |
Bytes |
卸载类的字节数 |
Time |
装载和卸载类所花费的时间 |
2、jstat -compiler <pid>显示VM实时编译的数量等信息。
显示列名 |
具体描述 |
Compiled |
编译任务执行数量 |
Failed |
编译任务执行失败数量 |
Invalid |
编译任务执行失效数量 |
Time |
编译任务消耗时间 |
FailedType |
最后一个编译失败任务的类型 |
FailedMethod |
最后一个编译失败任务所在的类及方法 |
3、jstat -gc <pid>: 可以显示gc的信息,查看gc的次数,及时间。
显示列名 |
具体描述 |
S0C |
年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C |
年轻代中第二个survivor(幸存区)的容量 (字节) |
S0U |
年轻代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U |
年轻代中第二个survivor(幸存区)目前已使用空间 (字节) |
EC |
年轻代中Eden(伊甸园)的容量 (字节) |
EU |
年轻代中Eden(伊甸园)目前已使用空间 (字节) |
OC |
Old代的容量 (字节) |
OU |
Old代目前已使用空间 (字节) |
PC |
Perm(持久代)的容量 (字节) |
PU |
Perm(持久代)目前已使用空间 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
YGCT |
从应用程序启动到采样时年轻代中gc所用时间(s) |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
FGCT |
从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT |
从应用程序启动到采样时gc用的总时间(s) |
4、jstat -gccapacity <pid>:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小
显示列名 |
具体描述 |
NGCMN |
年轻代(young)中初始化(最小)的大小(字节) |
NGCMX |
年轻代(young)的最大容量 (字节) |
NGC |
年轻代(young)中当前的容量 (字节) |
S0C |
年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C |
年轻代中第二个survivor(幸存区)的容量 (字节) |
EC |
年轻代中Eden(伊甸园)的容量 (字节) |
OGCMN |
old代中初始化(最小)的大小 (字节) |
OGCMX |
old代的最大容量(字节) |
OGC |
old代当前新生成的容量 (字节) |
OC |
Old代的容量 (字节) |
PGCMN |
perm代中初始化(最小)的大小 (字节) |
PGCMX |
perm代的最大容量 (字节) |
PGC |
perm代当前新生成的容量 (字节) |
PC |
Perm(持久代)的容量 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
5、jstat -gcutil <pid>:统计gc信息
显示列名 |
具体描述 |
S0 |
年轻代中第一个survivor(幸存区)已使用的占当前容量百分比 |
S1 |
年轻代中第二个survivor(幸存区)已使用的占当前容量百分比 |
E |
年轻代中Eden(伊甸园)已使用的占当前容量百分比 |
O |
old代已使用的占当前容量百分比 |
P |
perm代已使用的占当前容量百分比 |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
YGCT |
从应用程序启动到采样时年轻代中gc所用时间(s) |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
FGCT |
从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT |
从应用程序启动到采样时gc用的总时间(s) |
6、jstat -gcnew <pid>:年轻代对象的信息。
显示列名 |
具体描述 |
S0C |
年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C |
年轻代中第二个survivor(幸存区)的容量 (字节) |
S0U |
年轻代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U |
年轻代中第二个survivor(幸存区)目前已使用空间 (字节) |
TT |
持有次数限制 |
MTT |
最大持有次数限制 |
EC |
年轻代中Eden(伊甸园)的容量 (字节) |
EU |
年轻代中Eden(伊甸园)目前已使用空间 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
YGCT |
从应用程序启动到采样时年轻代中gc所用时间(s) |
7、jstat -gcnewcapacity<pid>: 年轻代对象的信息及其占用量。
显示列名 |
具体描述 |
NGCMN |
年轻代(young)中初始化(最小)的大小(字节) |
NGCMX |
年轻代(young)的最大容量 (字节) |
NGC |
年轻代(young)中当前的容量 (字节) |
S0CMX |
年轻代中第一个survivor(幸存区)的最大容量 (字节) |
S0C |
年轻代中第一个survivor(幸存区)的容量 (字节) |
S1CMX |
年轻代中第二个survivor(幸存区)的最大容量 (字节) |
S1C |
年轻代中第二个survivor(幸存区)的容量 (字节) |
ECMX |
年轻代中Eden(伊甸园)的最大容量 (字节) |
EC |
年轻代中Eden(伊甸园)的容量 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
8、jstat -gcold <pid>:old代对象的信息。
显示列名 |
具体描述 |
PC |
Perm(持久代)的容量 (字节) |
PU |
Perm(持久代)目前已使用空间 (字节) |
OC |
Old代的容量 (字节) |
OU |
Old代目前已使用空间 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
FGCT |
从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT |
从应用程序启动到采样时gc用的总时间(s) |
9、stat -gcoldcapacity <pid>: old代对象的信息及其占用量。
显示列名 |
具体描述 |
OGCMN |
old代中初始化(最小)的大小 (字节) |
OGCMX |
old代的最大容量(字节) |
OGC |
old代当前新生成的容量 (字节) |
OC |
Old代的容量 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
FGCT |
从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT |
从应用程序启动到采样时gc用的总时间(s) |
10、jstat -gcpermcapacity<pid>: perm对象的信息及其占用量。
显示列名 |
具体描述 |
PGCMN |
perm代中初始化(最小)的大小 (字节) |
PGCMX |
perm代的最大容量 (字节) |
PGC |
perm代当前新生成的容量 (字节) |
PC |
Perm(持久代)的容量 (字节) |
YGC |
从应用程序启动到采样时年轻代中gc次数 |
FGC |
从应用程序启动到采样时old代(全gc)gc次数 |
FGCT |
从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT |
从应用程序启动到采样时gc用的总时间(s) |
11、jstat -printcompilation <pid>:当前VM执行的信息。
显示列名 |
具体描述 |
Compiled |
编译任务的数目 |
Size |
方法生成的字节码的大小 |
Type |
编译类型 |
Method |
类名和方法名用来标识编译的方法。类名使用/做为一个命名空间分隔符。方法名是给定类中的方法。上述格式是由-XX:+PrintComplation选项进行设置的 |
转自:http://blog.csdn.net/zhaozheng7758/article/details/8623549
相关推荐
jstat命令是用于监控Java虚拟机(JVM)运行时统计信息的命令行工具,它能够显示Java虚拟机中的堆状况、类加载、垃圾回收等多方面的数据。这个命令通常用于排查JVM性能问题或者进行监控分析。 jstat命令的基本用法...
`jmap`、`jstat`等命令是Java开发和运维人员的必备工具,它们提供了对JVM(Java虚拟机)内部状态的深入洞察,帮助我们了解内存使用、垃圾收集、线程状态等情况。下面将详细介绍这些命令及其在监控Tomcat内存使用情况...
#### 三、jstat命令详解 ##### 1. 类的加载及卸载情况 (`-class`) `jstat -class <pid>` 命令用于查看类加载情况统计,输出的信息包括: - **Loaded**: 当前已加载的类的数量。 - **Bytes**: 已加载类占用的字节数。...
默认值是无限,意味着jstat将输出统计信息,直到目标JVM终止或jstat命令被终止。必须为正整数。 `vmid`的语法与URI的语法大致对应,其结构可以很简单,比如一个代表本地JVM的简单整数,也可以更复杂,包括通讯协议...
要查看哪个进程频繁进行GC,可以使用以下命令: ``` jstat -gc <进程ID> <间隔时间> <次数> ``` 这里的`<进程ID>`是你想监控的Java进程的ID,`<间隔时间>`是收集数据的时间间隔,单位为毫秒,`<次数>`是你希望收集...
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解 本文将对一些常用的 JVM 性能调优监控工具进行介绍,包括 jps、jstack、jmap、jhat、jstat 等工具的使用详解。这些工具对于 Java 程序员来说是必备的,...
`jstat`命令允许开发者查看JVM的各种统计数据,包括堆内存的使用情况、类加载数量、垃圾收集统计等。其基本格式如下: ```bash jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数] ``` - `-命令选项`:指定...
jstat命令的基本格式如下: ``` jstat [options] <vmid> [interval] [count] ``` - `options`:指定要查询的统计信息类型,如-gc、-gccapacity、-gccause等。 - `<vmid>`:虚拟机进程ID。 - `interval`:可选,指定...
4. **jstat (Java Statistics Tool)**: 这个命令主要用于收集Java虚拟机的各种统计数据,如垃圾收集、类加载等。例如,`jstat -gc pid [interval] [count]` 可以监控新老生代的内存使用和垃圾回收频率。使用`jstat -...
通过jstat命令,我们可以监控虚拟机的内存使用情况和垃圾回收的性能,对内存泄漏、频繁GC等问题做出快速反应。 3. jstack命令 jstack命令用于生成Java虚拟机当前的线程快照信息,包含每一条线程的堆栈信息。它通常...
JVM 监控管理及故障诊断工具 ...jps、jstat 和 jstatd 三种命令都是 JVM 监控管理及故障诊断的重要工具,它们可以帮助开发者快速地了解 JVM 的性能和资源消耗情况,从而进行合理的资源分配和性能优化。
在本文中,我们将介绍 10 个常见的 JVM 命令,包括 jps、jstat、jinfo、jmap 和 jstack 等。 jps 命令 jps 命令是 JVM 进程状态工具,用于显示指定系统内所有的 HotSpot 虚拟机的进程状态。它可以列出当前运行在...
jstat 命令可以查看一些关键参数信息,例如-class、-compiler、-gc、-gccapacity、-gcmetacapacity 等。通过 jstat 命令,我们可以监测到 JVM 的内存使用情况,包括堆内存信息、垃圾回收信息等。 在 JVM 性能监测...
这个压缩包文件"使用python来简单实现jdk几个指令.zip"提供了一种使用Python来实现Java JDK中几个基础命令的方法,例如`jps`和`jstat`。下面将详细解释这些知识点。 1. **Java Development Kit (JDK)**: JDK是Java...
而jstat命令用于监控和统计JVM的性能,命令格式为“jstat[-命令选项][vmid][间隔时间/毫秒][查询次数]”。使用jstat命令可以获取堆内存使用情况、垃圾回收统计、新生代垃圾回收统计、老年代垃圾回收统计等详细信息。...
jstat命令可以实时地监控Java应用程序的Heap size和垃圾回收状况等等信息,帮助开发者快速地定位问题所在。 七、jps命令 jps命令是一个查看JVM里面所有进程的状态的工具,包括进程ID、进程启动的路径等等信息。jps...
jvm命令行工具,java性能优化,jdk命令工具, jcmd命令、jps命令、jmap命令、jstack命令、jinfo命令、jstat命令
Java中常用的Linux命令 ...5. 查看Java垃圾回收信息:`jstat` 命令可以查看Java垃圾回收信息。 掌握这些Linux命令,可以帮助Java开发者更好地管理文件、进程和网络,提高开发效率和解决问题的能力。
本文将详细介绍一些常用的虚拟机状态查看命令,包括`jmap`, `jstat`, `jstat-gcutil`等相关工具的使用方法与应用场景。 #### 1. jmap `jmap` 是一个非常实用的工具,主要用于打印Java堆或永久代中的对象实例。其中...
本篇将重点介绍几种常用的JVM监控工具,包括jstack、jconsole、jinfo、jmap以及jdb和jstat。 首先,`jstack`是一个用于打印Java线程堆栈跟踪的工具。当应用出现死锁或者线程阻塞时,jstack可以帮助我们查看各个线程...