JVM探秘:jstat查看JVM统计信息
本系列笔记主要基于《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》,是这本书的读书笔记。
jstat命令用来查看JVM统计信息,可以查看类加载信息、垃圾收集的信息、JIT编译信息等等,功能非常丰富。
所有的JDK工具都可以在Oracle官网的 Java Tools Reference 文档中找到使用说明,这是主要参考,包括命令格式、参数内容、输出信息等等。
jstat命令格式:
jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]
jstat命令的帮助信息:

jstat统计类加载信息
jstat命令使用-class参数可以统计类加载信息,命令举例:
jstat -class 21060 1000 10
-class表示查看类加载统计信息,21060是pid,1000表示每1000毫秒打印一次,10表示打印10次。
输出如下:

输出信息中,每一列的含义可以查阅 Java Tools Reference 文档,从左到右依次,Loaded表示加载的类的个数,Bytes表示加载了多少KB,Unloaded表示卸载的类的个数,Bytes表示卸载了多少KB,Time表示类加载和卸载花费的时间。
jstat统计垃圾收集信息
jstat命令中,常用的跟垃圾收集相关的统计参数有:-gc、-gccapacity、-gcutil、-gccause、-gcnew、-gcold。
jstat -gc
-gc参数用来查看Java堆的垃圾收集统计信息,举例如下:
jstat -gc 21060 1000 3
其中,21060是pid,1000表示每1000毫秒打印一次,3表示打印3次。
输出如下:

同样的,输出信息中,每一列的含义可以查阅 Java Tools Reference 文档,依次如下:
S0C: 第1个Survivor空间的容量 Current survivor space 0 capacity (kB).
S1C: 第2个Survivor空间的容量(kB).
S0U: 第1个Survivor空间中已经使用的容量 Survivor space 0 utilization (kB).
S1U: 第2个Survivor空间中已经使用的容量(kB).
EC: Eden空间的容量(kB).
EU: Eden空间中已经使用的容量(kB).
OC: 老年代Old空间的容量(kB).
OU: 老年代Old空间已经使用的容量(kB).
MC: 元空间Metaspace的容量(kB).
MU: 元空间Metaspace已经使用的容量(kB).
CCSC: 压缩类空间的容量 Compressed class space capacity (kB).
CCSU: 压缩类空间已经使用的容量(kB).
YGC: Young GC发生的次数.
YGCT: Young GC花费的时间.
FGC: Full GC发生的次数.
FGCT: Full GC花费的时间.
GCT: 所有的GC花费的总时间.
jstat -gccapacity
-gccapacity参数用来统计各个内存区域的容量使用的最大最小值,例如使用到的最大值、最小值、当前使用值等等,举例如下:
jstat -gccapacity 21060
输出如下:

输出信息中,每一列的含义可以查阅 Java Tools Reference 文档,就不再一一列举了。基本都是统计的新生代老年代使用的最小值、最大值、当前值,Survivor和Eden空间的当前值,元空间和压缩类空间的最小值、最大值、当前值。
jstat -gcutil
-gcutil参数统计的是各个内存区域使用率,已使用容量的百分比,举例如下:
jstat -gcutil 21060
输出如下:

输出信息中,统计的都是Survivor、Eden、老年代、元空间、压缩类空间等的使用百分比。
jstat统计JIT编译信息
jstat命令中,跟JIT编译相关的统计参数有:-compiler、-printcompilation。
-compiler参数统计的是JIT编译信息,举例如下:
jstat -compiler 21060
输出如下:

输出信息中,从左到右每列依次是,Compiled表示完成了多少次JIT编译,Failed表示编译失败的次数,Invalid表示无效的编译次数,Time表示JIT编译总共花费的时间,FailedType最后一次编译失败的编译类型,FailedMethod最后一次编译失败的类名和方法名。
jstat的其他参数
除了上面列举的几个,jstat还有很多其他参数,使用手册参考 Java Tools Reference 文档,jstat所有统计参数列举如下:
class: Displays statistics about the behavior of the class loader.
compiler: Displays statistics about the behavior of the Java HotSpot VM Just-in-Time compiler.
gc: Displays statistics about the behavior of the garbage collected heap.
gccapacity: Displays statistics about the capacities of the generations and their corresponding spaces.
gccause: Displays a summary about garbage collection statistics (same as -gcutil), with the cause of the last and current (when applicable) garbage collection events.
gcnew: Displays statistics of the behavior of the new generation.
gcnewcapacity: Displays statistics about the sizes of the new generations and its corresponding spaces.
gcold: Displays statistics about the behavior of the old generation and metaspace statistics.
gcoldcapacity: Displays statistics about the sizes of the old generation.
gcmetacapacity: Displays statistics about the sizes of the metaspace.
gcutil: Displays a summary about garbage collection statistics.
printcompilation: Displays Java HotSpot VM compilation method statistics.
JVM探秘:jstat查看JVM统计信息的更多相关文章
- jstat查看jvm的GC
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上 ...
- jstat查看JVM的GC情况
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上 ...
- JVM系列第12讲:JVM参数之查看JVM参数
今天要说的是如何查看 JVM 中已经设置的参数,包括显示参数和隐式参数. 打印显式参数 -XX:+PrintVMOptions 该参数表示程序运行时,打印虚拟机接受到的命令行显式参数.我们用下面的命令 ...
- 【debug技巧】jstat:虚拟机统计信息监视器
我们在日常开发时,难免会遇到一些没有内存泄漏等问题.有时,我们无法下载arthas等开源的诊断工具.这时候,我们就可以借助JDK自带的一些诊断工具. 首先我们可以使用jstat查看gc信息 字段含义 ...
- jstat查看JVM统计信息
可以查看以下信息 [jdk基于1.8] 1.类装载 2.垃圾收集 3.JIT编译 一.类装载 返回参数的含义 二.垃圾收集 -gc的输出结果含义 JVM的内存结构 三.查看JIT编译 -compile ...
- jstat查看JVM GC情况
转自 https://www.cnblogs.com/yjd_hycf_space/p/7755633.html
- JVM探秘5---JVM监控命令大全
jps命令---查看JVM进程状况 格式为:jps [options] [hostid] 功能描述: jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm ...
- 查看JVM默认参数及微调JVM启动参数
目录 查看某个JVM进程堆内存信息 微调JVM启动参数 查看JVM的一些默认参数 参考廖雪峰老师的这篇 JVM调优的正确姿势: https://www.liaoxuefeng.com/article/ ...
- oracle10g 统计信息查看、收集
1. 统计信息查看 1.1 单个表的全局统计信息.统计效果查看 2. 统计信息分析(收集) 2.1 分析工具选择 2.2 分析前做index重建 2.3 分析某数据表,可以在PL/SQL的comm ...
随机推荐
- 04.swoole学习笔记--webSocket服务器
<?php //创建webSocket服务器 $serv=); //获取请求 //on //open 建立连接 $serv:服务器 $request:客户端信息 $serv->on('op ...
- lsof(查看端口)
简介 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如 ...
- Linux间传输文件 scp
scp scp使用ssh来传输数据,使用相同的认证方式,所以配置好ssh后,根据用户名和密码来读写远程文件.基本命令如下,输完命令,回车,输入远程用户对应的密码: 从本机复制到远程: 文件:scp F ...
- javascript中退出语句break,continue和return 比较
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止. 首先:break和continue两个 ...
- delphi http请求用到的编码方式
uses HttpEncode: HttpEncode(AnsiToUtf8('***'))
- Easy Climb UVA - 12170 滚动dp +离散化+ 单调队列优化
E.Easy Climb Somewhere in the neighborhood we have a very nice mountain that gives a splendid view o ...
- 官网英文版学习——RabbitMQ学习笔记(二)RabbitMQ安装
一.安装RabbitMQ的依赖Erlang 要进行RabbitMQ学习,首先需要进行RabbitMQ服务的安装,安装我们可以根据官网指导进行http://www.rabbitmq.com/downlo ...
- JPA#复杂查询#引子
_ 震惊....简历上写精通JPA的被下面几个问题震呆了.... 几个问题: 复杂查询如何从前端传递到后端,特别是多个条件的.且具有and和or等复杂逻辑,这个要如何封装呢? 多表查询? 自定义sql ...
- 七十九、SAP中数据库操作之更新数据,UPDATE的用法
一.我们查看SFLIGHT数据库,比如我们需要改这条数据 二.代码如下 三.执行效果如下,显示“数据更新成功” 四.我们来看一下SFLIGHT数据库,发现已经由DEM更改为了AAA了
- Assignment写作谨慎学术抄袭是关键
学术写作(Academic Writing)作为留学生涯的“必修课”,总是让闻者叹气,抓耳挠腮.初入课堂的留学生,更是缺乏写作经验不知从何下笔,只想仰天长啸“Essay真的好难啊!!”面对一个Essa ...