`

java jvm常用命令工具——jstat命令(Java Virtual Machine Statistics Monitoring Tool)

阅读更多

1.介绍

        Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:

        - 类的加载及卸载情况

        - 查看新生代、老生代及持久代的容量及使用情况

        - 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间

        - 查看新生代中Eden区及Survior区中容量及分配情况等

        jstat工具特别强大,它有众多的可选项,通过提供多种不同的监控维度,使我们可以从不同的维度来了解到当前JVM堆的使用情况。详细查看堆内各个部分的使用量,使用的时候必须加上待统计的Java进程号,可选的不同维度参数以及可选的统计频率参数。

        它主要是用来显示GC及PermGen相关的信息,如果对GC不怎么了解,先看这篇文章:http://blog.csdn.net/fenglibing/archive/2011/04/13/6321453.aspx,否则其中即使你会使用jstat这个命令,你也看不懂它的输出。

 

2.语法

        jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

        generalOption - 单个的常用的命令行选项,如-help, -options, 或 -version。

        outputOptions -一个或多个输出选项,由单个的statOption选项组成,可以和-t, -h, and -J等选项配合使用。

        statOption:根据jstat统计的维度不同,可以使用如下表中的选项进行不同维度的统计,不同的操作系统支持的选项可能会不一样,可以通过-options选项,查看不同操作系统所支持选项,如:

        -h n

        用于指定每隔几行就输出列头,如果不指定,默认是只在第一行出现列头。

        -JjavaOption

        用于将给定的javaOption传给java应用程序加载器,例如,“-J-Xms48m”将把启动内存设置为48M。如果想查看可以传递哪些选项到应用程序加载器中,可以相看如下的文档:

        Linux and Solaris:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/java.html

        Windows: http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/java.html

        -t n

        用于在输出内容的第一列显示时间戳,这个时间戳代表的是JVM开始启动到现在的时间(注:在IBM JDK5中是没有这个选项的)。

        vmid  - VM的进程号,即当前运行的java进程号。

        还有两个关于显示频率的选项:

        interval–间隔时间,单位可以是秒或者毫秒,通过指定s或ms确定,默认单位为毫秒。

        count-打印次数,如果缺省则打印无数次。

 

3.不同的统计维度(statOption)及输出说明

        -class


        -compiler


        -gc


        -gccapacity


        -gccause

        这个选项用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因,它比-gcutil会多出最后一次垃圾收集原因以及当前正在发生的垃圾收集的原因。


        -gcnew


        -gcnewcapacity


        -gcold


        -gcoldcapacity


        -gcpermcapacity

        从应用程序启动到采样时发生 Full GC 的次数


        -gcutil


        -printcompilation

 

4.使用示例

1).显示新生代、老生代及持代垃圾收集的情况


2).


        图中同时打印了young gc和full gc的总次数、总耗时。而每次young gc消耗的时间,可以用相间隔的两行YGCT相减得到。每次full gc消耗的时间,可以用相隔的两行FGCT相减得到。

        常驻内存区(P)的使用率,始终停留在4.59%左右,说明常驻内存没有突变,比较正常。如果young gc和full gc能够正常发生,而且都能有效回收内存,常驻内存区变化不明显,则说明java内存释放情况正常,垃圾回收及时,java内存泄露的几率就会大大降低。当时,也不能说明一定没有内存泄露。

3).JVM中堆的垃圾收集情况的统计


        以上,介绍了Jstat按百分比查看gc情况的功能。其实,它还有功能,例如加载类信息统计功能、内存池信息统计功能等,那些是以绝对值的形式打印出来的,比较少用,在此就不做介绍。

4).jstat -class pid:显示加载class的数量,及所占空间等信息。

5).jstat -compiler pid:显示VM实时编译的数量等信息。


6).查看远程服务器上的GC情况。

        这个需要先在远程服务器上面开启jstatd服务,然后执行如下示例:

        jstat -gcutil 18272@the_ip:2021/jstatdName 1000

 

Oracle上关于Jstat的使用说明:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html

 

文章来源:http://blog.csdn.net/fenglibing/article/details/6411951

  • 大小: 16.9 KB
  • 大小: 8.1 KB
  • 大小: 10.9 KB
  • 大小: 27.7 KB
  • 大小: 27 KB
  • 大小: 6 KB
  • 大小: 40 KB
  • 大小: 18.2 KB
  • 大小: 14.4 KB
  • 大小: 15.7 KB
  • 大小: 14.5 KB
  • 大小: 23.6 KB
  • 大小: 11.4 KB
  • 大小: 3.1 KB
  • 大小: 6.4 KB
  • 大小: 4 KB
  • 大小: 2.3 KB
  • 大小: 2.6 KB
分享到:
评论

相关推荐

    JVM监控管理及故障诊断工具(常用命令)

    2. jstat - Java Virtual Machine Statistics Monitoring Tool jstat 命令用于输出给定 Java 进程的统计信息。在只有控制台的环境中(比如生产环境),该命令十分奏效。我们主要通过它可以显示系统中垃圾回收、类...

    Tomcat教程-JVM相关工具.docx

    3. **jstat (Java Virtual Machine Statistics Monitoring Tool)**: jstat用于实时监控JVM的资源和性能,如垃圾收集、类加载、编译器等统计信息。它有多个子选项,例如`-gc`、`-gccapacity`、`-gccause`等,用于...

    jvm工具、参数调优&调试技巧.doc

    2. **jstat(Java Virtual Machine Statistics Monitoring tool)**:提供对JVM各种运行时统计数据的实时监控,包括垃圾收集器状态、类装载情况、JVM内存使用等,帮助开发者评估JVM性能。 3. **jinfo...

    JVM内存模型和性能调优:JVM调优工具详解及调优实战:jstat – 第38篇

    在众多的JVM调优工具中,`jstat`(Java Virtual Machine Statistics Monitoring Tool)是一个非常实用的命令行工具,尤其适用于实时监控和分析JVM的状态。 一、`jstat` 命令详解 `jstat`命令允许开发者查看JVM的...

    使用java自带工具监控jvm运行状态

    5. **jstat(Java Virtual Machine Statistics Monitoring Tool)** `jstat`是一个强大的命令行工具,它可以收集JVM的各种统计信息,包括垃圾收集、类装载、编译等。例如,`jstat -gcutil <pid> <interval> <count>...

    jstat-1压缩包1111

    jstat,全称Java Virtual Machine Statistics Monitoring Tool,是Java虚拟机自带的一个性能监控工具。它能够实时地监控Java虚拟机的各种运行状态,包括垃圾收集、类装载、内存使用、JVM编译等关键指标,是Java...

    Java线上故障排查方案.pdf

    3. 终端命令监控(Terminal Command Monitoring):通过执行特定的命令,例如使用jps、jmap、jstack、jinfo、jstat等JDK自带工具,可以获取Java虚拟机(JVM)的运行状态信息。 4. 内存分析工具(Memory Analysis ...

    JDK自带调试工具doc

    如`java.chm`可能包含了JDK的综合帮助文档,而`jstat - Java Virtual Machine Statistics Monitoring Tool.htm`、`jps - Java Virtual Machine Process Status Tool.htm`等文件则是各个工具的详细说明。通过阅读这些...

    虚拟机监控工具详请.rar

    2. **jstat(Java Virtual Machine Statistics Monitoring Tool)**: jstat是用于收集JVM的各种统计信息的工具,包括垃圾收集器、编译器和内存使用情况等。它可以提供实时的、详细的性能数据,帮助开发者分析内存...

    基于JVM性能监控命令介绍

    JVM(Java Virtual Machine)性能监控命令是Java开发者和运维人员不可或缺的工具,通过这些命令可以实时监控JVM的性能,了解虚拟机的运行状态,诊断和解决问题。本文将为大家介绍基于JVM性能监控命令的使用方法和...

Global site tag (gtag.js) - Google Analytics