`
fgsh
  • 浏览: 29943 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

JVM 与 jstat

    博客分类:
  • java
阅读更多

 

JVM jstat

准备知识

Sun的   Java   HotSpot(热区)   虚拟机将堆划分成三块区域同时用了三种垃圾收集技术。将堆进行拆分的目的是允许为新建立的对象和旧对象使用不同的算法。   这种技术是因为大多数的Java对象是生命周期较短的对象。堆的三个块区域为:

  1. permanent space持久空间: 用于类和方法对象的存储

  2. old space 旧对象空间:用于建立一段时间的对象

  3. eden space 新对象空间:用于新建立的对象

新对象空间被进一步划分成3个子区域:  
      1Eden:所有的新建立的对象存储处。  
      2Survivor   Space   0   或   1:在新对象成为旧对象之前的对象存储处。

在服务启动时没有指定启动参数-verbose:gc,可通过jstat Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控等等

使用jstat

执行jstat-gc 得到GC回收过程,要运行多次,通过比较来查看是否有内存泄露的可能.

Jstat –gc pid 间隔时间(默认是毫秒) 次数 (查看jstat --help)

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

320.0 320.0 128.0 0.0 22400.0 869.1 502144.0 491115.6 56064.0 33139.4 93108 1209.757 8 10.132 1219.889

320.0 320.0 128.0 0.0 22400.0 9067.6 502144.0 491115.6 56064.0 33139.4 93108 1209.757 8 10.132 1219.889

320.0 320.0 128.0 0.0 22400.0 18480.5 502144.0 491115.6 56064.0 33139.4 93108 1209.757 8 10.132 1219.889

320.0 320.0 128.0 0.0 22400.0 21662.6 502144.0 491115.6 56064.0 33139.4 93108 1209.757 8 10.132 1219.889

320.0 320.0 0.0 96.0 22400.0 4712.3 502144.0 491143.6 56064.0 33139.4 93109 1209.771 8 10.132 1219.903

320.0 320.0 0.0 96.0 22400.0 13482.3 502144.0 491143.6 56064.0 33139.4 93109 1209.771 8 10.132 1219.903

320.0 320.0 0.0 96.0 22400.0 21006.6 502144.0 491143.6 56064.0 33139.4 93109 1209.771 8 10.132 1219.903

320.0 320.0 136.0 0.0 22400.0 3065.5 502144.0 491167.6 56064.0 33139.4 93110 1209.786 8 10.132 1219.918

320.0 320.0 136.0 0.0 22400.0 10034.8 502144.0 491167.6 56064.0 33139.4 93110 1209.786 8 10.132 1219.918

320.0 320.0 136.0 0.0 22400.0 15687.6 502144.0 491167.6 56064.0 33139.4 93110 1209.786 8 10.132 1219.918

320.0 320.0 136.0 0.0 22400.0 22046.2 502144.0 491167.6 56064.0 33139.4 93110 1209.786 8 10.132 1219.918

320.0 320.0 0.0 144.0 22400.0 6664.2 502144.0 491191.6 56064.0 33139.4 93111 1209.799 8 10.132 1219.930

320.0 320.0 0.0 144.0 22400.0 12998.2 502144.0 491191.6 56064.0 33139.4 93111 1209.799 8 10.132 1219.930

320.0 320.0 0.0 144.0 22400.0 21305.5 502144.0 491191.6 56064.0 33139.4 93111 1209.799 8 10.132 1219.930

320.0 320.0 112.0 0.0 22400.0 9634.2 502144.0 491247.6 56064.0 33139.4 93112 1209.813 8 10.132 1219.945

320.0 320.0 112.0 0.0 22400.0 17039.8 502144.0 491247.6 56064.0 33139.4 93112 1209.813 8 10.132 1219.945

320.0 320.0 0.0 128.0 22400.0 7411.9 502144.0 491267.6 56064.0 33139.4 93113 1209.829 8 10.132 1219.960

320.0 320.0 0.0 128.0 22400.0 16995.1 502144.0 491267.6 56064.0 33139.4 93113 1209.829 8 10.132 1219.960

320.0 320.0 96.0 0.0 22400.0 4477.4 502144.0 491291.6 56064.0 33139.4 93114 1209.845 8 10.132 1219.977

320.0 320.0 96.0 0.0 22400.0 8164.9 502144.0 491291.6 56064.0 33139.4 93114 1209.845 8 10.132 1219.977

-gc Option

Garbage-collected heap statistics

Column

Description

S0C

Current survivor space 0 capacity (KB).

S1C

Current survivor space 1 capacity (KB).

S0U

Survivor space 0 utilization (KB).

S1U

Survivor space 1 utilization (KB).

EC

Current eden space capacity (KB).

EU

Eden space utilization (KB).

OC

Current old space capacity (KB).

OU

Old space utilization (KB).

PC

Current permanent space capacity (KB).

PU

Permanent space utilization (KB).

YGC

Number of young generation GC Events.

YGCT

Young generation garbage collection time.

FGC

Number of full GC events.

FGCT

Full garbage collection time.

GCT

Total garbage collection time.

XxxC:xxx容量

xxxU:xxx使用

 

 

 

u02 log/Developer> jstat -gcutil 26800 20000 20

S0 S1 E O P YGC YGCT FGC FGCT GCT

91.67 0.00 17.16 42.18 62.26 95012 1232.768 9 11.342 1244.109

0.00 75.00 37.25 42.21 62.26 95017 1232.838 9 11.342 1244.180

0.00 75.00 92.21 42.22 62.26 95021 1232.881 9 11.342 1244.223

87.52 0.00 35.94 42.25 62.26 95026 1232.943 9 11.342 1244.285

 

S0Heap上的 Survivor space 0 段已使用空间的百分比

S1Heap上的 Survivor space 1 段已使用空间的百分比

EHeap上的 Eden space 段已使用空间的百分比

OHeap上的 Old space 段已使用空间的百分比

PPerm space 已使用空间的百分比

YGC:从程序启动到采样时发生Young GC的次数

YGCTYoung GC所用的时间(单位秒)

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

FGCTFull GC所用的时间(单位秒)

GCT:用于垃圾回收的总时间(单位秒)

 

-gcutil Option

Summary of Garbage Collection Statistics

Column

Description

S0

Survivor space 0 utilization as a percentage of the space's current capacity.

S1

Survivor space 1 utilization as a percentage of the space's current capacity.

E

Eden space utilization as a percentage of the space's current capacity.

O

Old space utilization as a percentage of the space's current capacity.

P

Permanent space utilization as a percentage of the space's current capacity.

YGC

Number of young generation GC events.

YGCT

Young generation garbage collection time.

FGC

Number of full GC events.

FGCT

Full garbage collection time.

GCT

Total garbage collection time.

 

 

通过指定虚拟机启动参数-verbose:gc,使得GC把回收垃圾的信息打印到控制台

Java –verbose:gc

[Full GC 168K->97K(1984K)0.0253873 secs]

箭头之前:168K是代表GC回收前对象占用的内存空间

箭头之后:97代表GC回收后对旬占用内存空间

说明有168K-97K=71K的对象容量被回收

括号里的1984代表堆heap内存总容量, 收集所需要的时间是0.0253873

 

参考文献

jstat - Java Virtual Machine Statistics Monitoring Tool

http://java.sun.com/javase/6/docs/technotes/tools/share/jstat.html

分享到:
评论

相关推荐

    JVM内存—jstat分析

    ### JVM内存管理与jstat工具详解 #### 一、引言 在现代软件开发中,Java虚拟机(JVM)是构建高性能应用的基础之一。为了确保应用能够在各种资源限制下稳定运行,开发者需要掌握如何有效地管理和监控JVM的内存使用...

    jmap、jstack、jstat组合使用定位jvm问题.txt

    jmap、jstack、jstat组合使用定位jvm问题

    jstat官方介绍

    jstat是一个强大的监控工具,可以为开发者和系统管理员提供关于JVM性能的深入见解,尤其是与垃圾收集和类加载相关的性能指标。通过监控这些指标,用户可以及时发现和解决问题,优化Java应用程序的性能。尽管工具本身...

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

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解 本文将对一些常用的 JVM 性能调优监控工具进行介绍,包括 jps、jstack、jmap、jhat、jstat 等工具的使用详解。这些工具对于 Java 程序员来说是必备的,...

    学习笔记——JVM性能调优之 jstat(csdn)————程序.pdf

    jstat(JVM Statistics Monitoring Tool)是Oracle JDK提供的一款强大的命令行工具,用于实时监控Java虚拟机的各种运行状态,包括内存管理、类加载、垃圾收集以及JIT编译等关键指标。了解并熟练运用jstat,能帮助...

    JVM内存溢出问题解析

    JVM 内存溢出问题解析 JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。这种情况可能是由于数据量过大、死循环、静态变量和静态方法过多、递归、无法确定是否被引用的对象等原因引起的。同时...

    深入JVM内核—原理、诊断与优化视频教程-3.常用JVM配置参数

    此外,JDK自带的JMX(Java Management Extensions)和JVM命令行工具(如jstat、jmap、jhat)也是进行性能诊断的重要手段。 在优化方面,JVM配置参数起着决定性作用。例如,“-Xms”和“-Xmx”用于设置堆内存的初始...

    jstat命令手册.pdf

    jstat命令是用于监控Java虚拟机(JVM)运行时统计信息的命令行工具,它能够显示Java虚拟机中的堆状况、类加载、垃圾回收等多方面的数据。这个命令通常用于排查JVM性能问题或者进行监控分析。 jstat命令的基本用法...

    JVM与Hadoop介绍

    - **Jstat**:显示JVM的统计信息,如堆内存使用情况、垃圾收集器信息等。 - **Jinfo**:查询或更新JVM配置信息。 - **JConsole**:图形化的监视和管理工具,能够远程监控JVM。 - **VisualVM**:集成了多个功能的故障...

    jmap jstat等命令介绍

    配置jconsole与Tomcat的连接通常涉及修改Tomcat的`catalina.sh`或`catalina.bat`启动脚本,添加JVM参数`-Dcom.sun.management.jmxremote`等。 在提供的文件"jconsole+tomcat配置说明(基于jdk5_0) - bluestar - ...

    java jstat 查看哪个进程频繁GC垃圾回收

    `jstat`是Java虚拟机内置的一个命令行工具,用于实时监控JVM的各种运行状态,包括垃圾回收的信息。要查看哪个进程频繁进行GC,可以使用以下命令: ``` jstat -gc <进程ID> <间隔时间> <次数> ``` 这里的`<进程ID>`...

    深入JVM内核—原理、诊断与优化视频教程-2.JVM运行机制

    10. **JVM诊断工具**:JDK提供了丰富的命令行工具,如jps(Java进程查看)、jstat(统计JVM各种数据)、jmap(内存映射工具)、jhat(堆转储分析)、jconsole(GUI监控工具)等,用于监控和诊断JVM的运行状态。...

    JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    jstat是一个命令行工具,利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行监控,包括对Heap size和垃圾回收状况的监控等等。 jps jps是一个命令行工具,用于查看JVM中的所有进程状态,包括进程ID、...

    深入jvm 内核-原理,诊断于优化视频教程

    ### 深入JVM内核:原理、诊断与优化 #### 一、JVM基础知识 **1.1 JVM概念** Java虚拟机(Java Virtual Machine,简称JVM)是一种用于执行Java字节码的虚拟机。它为Java程序提供了一个运行环境,能够独立于硬件平台...

    JVM高级特性与最佳实践(第2版)+pdf+源码

    5. **性能调优**:JVM提供了丰富的命令行工具,如jps、jstat、jmap、jhat、jconsole等,用于监控和分析JVM状态。通过调整JVM参数(如-Xms, -Xmx, -XX:NewRatio等),可以优化内存分配、GC行为和线程设置,达到性能...

    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc

    本文将深入探讨六种关键的JVM监控工具——`jstack`, `jconsole`, `jinfo`, `jmap`, `jdb`, `jstat`——它们各自的功能、应用场景及如何帮助开发者和运维人员诊断并解决JVM中的复杂问题。 #### 1. jstack —— Java ...

    jvm内存监控工具使用

    本文将深入探讨 VisualVM 及其集成的一系列命令行工具,包括 jps、jstat、jmap、jinfo、jstack 和 JConsole,帮助读者掌握 JVM 内存监控的核心技巧。 #### VisualVM:JVM 监控的全能工具 VisualVM 是一款功能强大...

    JVM分析工具

    例如,首先使用`jstat`监控JVM的实时状态,发现可能的性能问题后,用`jmap`生成heap dump,最后借助MAT进行深入的内存分析。通过这种方式,开发者可以找出内存泄漏、优化内存分配、改进垃圾收集效率,进而提升Java...

    JVM.zip_java jvm_jvm

    "JVM.zip"可能是一个包含了与JVM相关的工具或示例代码的压缩包,特别是用于获取运行中的JVM系统的参数。这通常是开发人员为了监控和优化Java应用程序性能的重要手段。 在Java中,`SystemInfo`类的出现很可能是为了...

Global site tag (gtag.js) - Google Analytics