[모니터링] jstat tool을 이용한 JVM의 GC 모니터링 하기
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 이환호