1. 미들웨어이야기/01. JVM

[모니터링] jstat tool을 이용한 JVM의 GC 모니터링 하기

알 수 없는 사용자 2014. 5. 31. 23:41

JDK를 설치할 경우 1.6 버전부터 기본적인 모니터링 및 분석툴을 제공해 준다.

제공하는 툴 중 JVM의 GC(Gabage Collect) 상태를 Command line에서 알 수 있는 툴에 대해 알아보자

- 툴 이름 : jstat

- 경로 : $JAVA_HOME/bin/jstat

- 메뉴얼 : http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html

 

● 툴 사용법

 jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

jstat [일반옵션 | 출력옵션 <vmid> [간격[수행횟수]]]

* 일반옵션

  -help : 도움말

  -options : 표시할 통계의 항목의 리스트를 보여준다.

* 출력옵션

  -t : 출력의 가장 첫번째 컬럼에 timestame 컬럼으로 출력

  -h : 헤드라인의 출력될 라인수( 예 : -h 20  옵션을 지정 시 20번째 라인마다 헤드라인 출력) 

  <vmid> : 모니터링 하고자 하는 JVM의 PID

  <interval> : 모니터링 정보 출력 주기. 단위는 초(default) | 밀리세컨드(s|ms)

  <count> : 모니터링의 횟수

● 툴 사용 예시 (가장 많이 사용되는 gcutil )

C:\Program Files\Java\jdk1.6.0_45\bin>jstat -gcutil -t -h5 1112 10s 15
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT    GCT
         3648.1   0.00  95.62  28.45  64.88  99.44     17    0.095     0    0.000    0.095
         3658.1   0.00  95.62  28.79  64.88  99.44     17    0.095     0    0.000    0.095
         3668.1   0.00  95.62  28.79  64.88  99.44     17    0.095     0    0.000    0.095
         3678.1   0.00  95.62  28.79  64.88  99.44     17    0.095     0    0.000    0.095
         3688.1   0.00  95.62  28.79  64.88  99.44     17    0.095     0    0.000    0.095
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT    GCT
         3698.2   0.00  95.62  28.79  64.88  99.44     17    0.095     0    0.000    0.095
         3708.2   0.00  95.62  29.12  64.88  99.44     17    0.095     0    0.000    0.095
         3718.2   0.00  95.62  29.12  64.88  99.44     17    0.095     0    0.000    0.095
         3728.2   0.00  95.62  29.12  64.88  99.44     17    0.095     0    0.000    0.095
         3738.2   0.00  95.62  29.12  64.88  99.44     17    0.095     0    0.000    0.095
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT    GCT
         3748.2   0.00  95.62  29.12  64.88  99.44     17    0.095     0    0.000    0.095
         3758.2   0.00  95.62  29.12  64.88  99.44     17    0.095     0    0.000    0.095
         3768.2   0.00  95.62  29.46  64.88  99.44     17    0.095     0    0.000    0.095
         3778.2   0.00  95.62  29.46  64.88  99.44     17    0.095     0    0.000    0.095
         3788.2   0.00  95.62  29.46  64.88  99.44     17    0.095     0    0.000    0.095

● 헤드라인의 각 항목별 설명

Timestamp : JVM이 기동된 시간부터의 Timestamp
S0 : Survivor 0 영역
S1 : Survivor 1 영역
E : Eden 영역, Young Area (Miner GC)
O : Old 영역, (Mager GC)
P : Permanent Area
YGC : Young GC Count
YGCT : Young GC Time Total
FGC : Full GC Count
FGCT : Full GC Time Total
GCT : Young GC + Full GC 

jstat 툴을 이용하면 Windows환경 또는 GC 로그를 설정해 놓지 않은 환경에서 JVM의 상태를 확인 할 수 있어서 자주 사용하는 툴이므로 사용방법을 꼭~~ 기억해 두자

by 이환호

'1. 미들웨어이야기 > 01. JVM' 카테고리의 다른 글

JVM(Java Virtual Machine) 성능 조정  (0) 2014.09.30
GC (G1GC)  (0) 2014.09.30
IBM JVM (1.5 기준)  (0) 2009.06.16
Sun HotSpot JVM (1.5 기준)  (0) 2009.06.16
JVM Standard vs. Non-Standard Option  (0) 2009.06.16