JVM性能调优3:JVM_堆溢出分析过程和命令

原创 2016年05月31日 13:39:56

本系列包括:





1    查看JVM状态信息jstat命令格式

        jstat-option -t -h num pid interval count

        -option:参数

        -t打印收集信息的时间

        -hnum行打印一个head

        pid监控的进程号

        interval间隔多少毫秒采集一次信息

        count一共采集多少次信息。

2    分析过程命令

        (1)查看JVM启动参数和进程号

                  jps -mlvV

        (2)看堆内存分配情况

                  jstat -gccapacity -t -h 5 2808 100 10

 

        (3)看垃圾回收情况

                  jstat -gcutil -t -h 5 2808 100 10

                  jstat -gccause -t -h 5 2808 100 10

                  

                  -gcutil:查看堆内存占用和回收情况。

                  -gccause:查看最近一次垃圾回收原因。

 

 (4)如果堆内存持续占用率很高,查看堆内存内对象情况

     jmap-histo pid

     

 (5)如果向查看更多信息,在cmd里运行jstat查看jstat的其他参数。

 

 (6)更多的资料信息,请上网查询查找。

 

3    附录

1jstat –gccapacity 输出结果

Column

Description

NGCMN

Minimum new generation capacity (KB).

NGCMX

Maximum new generation capacity (KB).

NGC

Current new generation capacity (KB).

S0C

Current survivor space 0 capacity (KB).

S1C

Current survivor space 1 capacity (KB).

EC

Current eden space capacity (KB).

OGCMN

Minimum old generation capacity (KB).

OGCMX

Maximum old generation capacity (KB).

OGC

Current old generation capacity (KB).

OC

Current old space capacity (KB).

PGCMN

Minimum permanent generation capacity (KB).

PGCMX

Maximum Permanent generation capacity (KB).

PGC

Current Permanent generation capacity (KB).

PC

Current Permanent space capacity (KB).

YGC

Number of Young generation GC Events.

FGC

Number of Full GC Events.

2jstat –util 输出结果

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.

3jstat –gccause

Column

Description

LGCC

Cause of last Garbage Collection.

GCC

Cause of current Garbage Collection.

 

4jstat –gc

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.

 

 

 


版权声明:本文为博主原创文章,未经博主允许不得转载。

JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释

jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:...
  • sd4015700
  • sd4015700
  • 2015年11月30日 11:30
  • 1523

Survivor空间溢出实例

本文演示survivor空间溢出的场景。 实例代码 class MemoryObject{ private byte[] bytes; public MemoryObject...
  • lihuifeng
  • lihuifeng
  • 2016年06月15日 13:58
  • 275

JVM调优:PermSpace溢出

引言: 在JVM中, PermSpace主要存放什么信息?如何去理解它的溢出呢?
  • blueheart20
  • blueheart20
  • 2014年10月07日 21:37
  • 11436

Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread),

Hotspot jvm的实现中,将堆内存分为了两部:新生代,老年代。在堆内存之外,还有永久代, 其中永久代实现了规范中规定的方法区。 栈溢出:出现此种情况是因为方法运行的时候,栈的深度超过了虚拟机容许...
  • qq_33242819
  • qq_33242819
  • 2016年11月24日 15:03
  • 618

Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread)

转载自https://github.com/pzxwhc/MineKnowContainer/issues/25 包括: 1. 栈溢出(StackOverflowError) 2. 堆溢...
  • ni357103403
  • ni357103403
  • 2016年07月18日 12:06
  • 1873

JVM内存区域划分 EDEN SPACE、SURVIVOR SPACE、TENURED GEN

本文转自:点击打开链接 JVM区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(...
  • zhuyucheng123
  • zhuyucheng123
  • 2016年07月10日 17:30
  • 1533

Java内存溢出与栈溢出

一、背景知识 1、JVM体系结构 2、JVM运行时数据区 3、JVM内存模型 JVM运行时内存 = 共享内存区 + 线程内存区 3-1、共享内存区 共享内存区 = 持久...
  • hu1991die
  • hu1991die
  • 2015年01月23日 11:02
  • 12753

JVM堆溢出实例

因为对象是在堆里面创建的,堆大小一定,一直创建对象就可以消耗完堆空间,同时,由于由于垃圾回收的存在,创建对象的时候也要保证对象不要被当做垃圾回收了,JVM使用可达性分析来判断一个对象是否是垃圾。我们可...
  • ruangong1203
  • ruangong1203
  • 2016年07月25日 22:57
  • 494

java代码实现JVM栈溢出,堆溢出

背景知识: 栈存放什么:栈存储运行时声明的变量——对象引用(或基础类型, primitive)内存空间, 栈的实现是先入后出的。 堆存放什么:堆分配每一个对象内容(实例)内存空间。 栈溢出:java....
  • koko2015c
  • koko2015c
  • 2017年09月03日 17:05
  • 358

JVM学习笔记一 之 内存泄露与内存溢出

内存溢出(memory overflow):程序运行过程中无法申请到足够的内存而导致的一种错误。垃圾回收后,仍然无内存空间容纳新的Java对象的情况。 内存泄露(memory leak):内存申请后,...
  • a2572371
  • a2572371
  • 2017年10月11日 09:12
  • 62
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JVM性能调优3:JVM_堆溢出分析过程和命令
举报原因:
原因补充:

(最多只允许输入30个字)