jstat(JVM Statistics Monitoring Tool) 使用于监视虚拟机各种运行状态信息的命令行工具。 它可以显示本地或者远程(需要远程主机提供 RMI 支持)虚拟机进程中的类信息、内存、垃圾收集、 JIT 编译等运行数据,在没有 GUI,只提供了纯文本控制台环境的服务器上, 它将是运行期间定位虚拟机性能问题的首选工具。
命令格式
jstat -help
Usage: jstat -help|-options
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
Definitions:
<option> An option reported by the -options option
<vmid> Virtual Machine Identifier. A vmid takes the following form:
<lvmid>[@<hostname>[:<port>]]
Where <lvmid> is the local vm identifier for the target
Java virtual machine, typically a process id; <hostname> is
the name of the host running the target Java virtual machine;
and <port> is the port number for the rmiregistry on the
target host. See the jvmstat documentation for a more complete
description of the Virtual Machine Identifier.
<lines> Number of samples between header lines.
<interval> Sampling interval. The following forms are allowed:
<n>["ms"|"s"]
Where <n> is an integer and the suffix specifies the units as
milliseconds("ms") or seconds("s"). The default units are "ms".
<count> Number of samples to take before terminating.
-J<flag> Pass <flag> directly to the runtime system.
比如 jstat -gc -h3 31736 1000 10
表示分析进程 id 为 31736 的 gc 情况,每隔 1000ms 打印一次记录,打印 10 次停止, 每 3 行后打印指标头部。
另外,加上 -t参数可以在输出信息上加一个 Timestamp 列,显示程序的运行时间。
常用 option
-class
jstat -class vmid
显示 ClassLoader 的相关信息;
-compiler
jstat -compiler vmid
显示 JIT 编译的相关信息;
-gc
jstat -gc vmid
显示与 GC 相关的堆信息;
-gccapacity
jstat -gccapacity vmid
显示各个代的容量及使用情况;
-gcnew
jstat -gcnew vmid
显示新生代信息;
-gcnewcapcacity
jstat -gcnewcapcacity vmid
显示新生代大小与使用情况;
-gcold
jstat -gcold vmid
显示老年代和永久代的行为统计,从jdk1.8开始,该选项仅表示老年代,因为永久代被移除了;
-gcoldcapacity
jstat -gcoldcapacity vmid
显示老年代的大小;
-gcpermcapacity
jstat -gcpermcapacity vmid
显示永久代大小,从jdk1.8开始,该选项不存在了,因为永久代被移除了;
-gcutil
jstat -gcutil vmid
显示垃圾收集信息;
参考资料
文档信息
- 本文作者:Bob.Zhu
- 本文链接:https://adolphor.github.io/2021/09/29/02-jvm-jstat/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)