ex) ~]jstat -gc 16543 1000
저건 pid 16543(java)를 1초에 한번씩 결과값을 보여달란거다.
pid는 ps -efw | grep java로 알아내면 된다.
~] jstat --help
invalid argument count Definitions: |
옵션은 다음과 같다.
옵션명 | 내용 |
class | 클래스 로더의 동작에 관한 통계 데이터 |
compiler | HotSpot Just-in-Time 컴파일러의 동작에 관한 통계 데이터 |
gc | 가베지 컬렉트된 heap의 동작에 관한 통계 데이터 |
gccapactiy | 세대마다의 용량과 대응하는 영역에 관한 통계 데이터 |
gccause | 가베지 콜렉션 통계 데이터의 개요 (-gcutil 와 같다)와 직전 및 현재 (적용 가능한 경우)의 가베지 콜렉션 이벤트의 원인 |
gcnew | New 세대의 동작에 관한 통계 데이터 |
gcnewcapacity | New 세대의 사이즈와 대응하는 영역에 관한 통계 데이터 |
gcold | Old 세대 및 Permanent 세대의 동작에 관한 통계 데이터 |
gcoldcapacity | Old 세대의 사이즈에 관한 통계 데이터 |
gcpermcapacity | Permanent 세대의 사이즈에 관한 통계 데이터 |
gcutil | 가베지 콜렉션 통계 데이터의 개요 |
printcompilation | HotSpot 컴파일 방법의 통계 데이터 |
각 옵션에 대한 컬럼에 대한 설명은 다음과 같다.
-class 클래스 로더의 통계 데이터
Loaded | Bytes | Unloaded | Bytes | Time |
로드 된 클래스의 수 | 로드 된 K 바이트수 | 언로드된 클래스의 수 | 언로드된 K 바이트수 | 클래스의 로드나 언로드 처리에 필요로 한 시간 |
-compiler HotSpot Just-In-Time 컴파일러의 통계 데이터
Compiled | Failed | Invalid | Time | FailedType | FailedMethod |
실행된 컴파일 태스크의 수 | 실패한 컴파일 태스크의 수 | 무효로 된 컴파일 태스크의 수 | 컴파일 태스크의 실행에 필요로 한 시간 | 마지막에 실패한 컴파일의 컴파일 타입 | 마지막에 실패한 컴파일의 클래스명과 메소드 |
-gc 가비지 컬렉트된 heap의 통계 데이터
컬럼명 | 설명 |
S0C | Survivor 영역 0 의 현재의 용량 (KB) |
S1C | Survivor 영역 1 의 현재의 용량 (KB) |
S0U | Survivor 영역 0 의 사용율 (KB) |
S1U | Survivor 영역 1 의 사용율 (KB) |
EC | Eden 영역의 현재의 용량 (KB) |
EU | Eden 영역의 사용율 (KB) |
OC | Old 영역의 현재의 용량 (KB) |
OU | Old 영역의 사용율 (KB) |
PC | Permanent 영역의 현재의 용량 (KB) |
PU | Permanent 영역의 사용율 (KB) |
YGC | Young 세대의 GC 이벤트수 |
YGCT | Young 세대의 가베지 콜렉션 시간 |
FGC | 풀 GC 이벤트수 |
FGCT | 풀 가베지 콜렉션 시간 |
GCT | 가베지 콜렉션의 합계 시간 |
-gccapacity 메모리프르 세대 및 영역 용량
컬럼명 | 설명 |
NGCMN | New 세대의 최소 용량 (KB) |
NGCMX | New 세대의 최대 용량 (KB) |
S0C | Survivor 영역 0 의 현재의 용량 (KB) |
S1C | Survivor 영역 1 의 현재의 용량 (KB) |
EC | Eden 영역의 현재의 용량 (KB) |
OGCMN | Old 세대의 최소 용량 (KB) |
OGCMX | Old 세대의 최대 용량 (KB) |
OGC | Old 세대의 현재의 용량 (KB) |
OC | Old 영역의 현재의 용량 (KB) |
PGCMN | Permanent 세대의 최소 용량 (KB) |
PGCMX | Permanent 세대의 최대 용량 (KB) |
PGC | Permanent 세대의 현재의 용량 (KB) |
PC | Permanent 영역의 현재의 용량 (KB) |
YGC | Young 세대의 GC 이벤트수 |
FGC | 풀 GC 이벤트수 |
NGC | New 세대의 현재의 용량 (KB) |
-gcutil 가베지 콜렉션 통계 데이터의 개요
컬럼명 | 설명 |
S0 | Survivor 영역 0 의 사용율 (현재의 용량에 대한 퍼센티지) |
S1 | Survivor 영역 1 의 사용율 (현재의 용량에 대한 퍼센티지) |
E | Eden 영역의 사용율 (현재의 용량에 대한 퍼센티지) |
O | Old 영역의 사용율 (현재의 용량에 대한 퍼센티지) |
P | Permanent 영역의 사용율 (현재의 용량에 대한 퍼센티지) |
YGC | Young 세대의 GC 이벤트수 |
YGCT | Young 세대의 가베지 콜렉션 시간 |
FGC | 풀 GC 이벤트수 |
FGCT | 풀 가베지 콜렉션 시간 |
GCT | 가베지 콜렉션총시간 |
-gccause GC 이벤트를 포함한 가베지 콜렉션 통계 데이터(gcutil에 두개 컬럼이 추가됨)
컬럼명 | 설명 |
LGCC | 마지막 가베지 콜렉션의 원인 |
GCC | 현재의 가베지 콜렉션의 원인 |
-gcnew New 세대의 통계 데이터
컬럼명 | 설명 |
S0C | Survivor 영역 0 의 현재의 용량 (KB) |
S1C | Survivor 영역 1 의 현재의 용량 (KB) |
S0U | Survivor 영역 0 의 사용율 (KB) |
S1U | Survivor 영역 1 의 사용율 (KB) |
TT | 전당 들어가 귀의치 |
MTT | 최대 전당 들어가 귀의치 |
DSS | 적절한 Survivor 사이즈 (KB) |
EC | Eden 영역의 현재의 용량 (KB) |
EU | Eden 영역의 사용율 (KB) |
YGC | Young 세대의 GC 이벤트수 |
YGCT | Young 세대의 가베지 콜렉션 시간 |
-gcold 옵션 Old 및 Permanent 세대의 통계 데이터
컬럼명 | 설명 |
PC | Permanent 영역의 현재의 용량 (KB) |
PU | Permanent 영역의 사용율 (KB) |
OC | Old 영역의 현재의 용량 (KB) |
OU | Old 영역의 사용율 (KB) |
YGC | Young 세대의 GC 이벤트수 |
FGC | 풀 GC 이벤트수 |
FGCT | 풀 가베지 콜렉션 시간 |
GCT | 가베지 콜렉션총시간 |
-gcoldcapacity Old 세대의 통계 데이터
컬럼명 | 설명 |
OGCMN | Old 세대의 최소 용량 (KB) |
OGCMX | Old 세대의 최대 용량 (KB) |
OGC | Old 세대의 현재의 용량 (KB) |
OC | Old 영역의 현재의 용량 (KB) |
YGC | Young 세대의 GC 이벤트수 |
FGC | 풀 GC 이벤트수 |
FGCT | 풀 가베지 콜렉션 시간 |
GCT | 가베지 콜렉션총시간 |
-printcompilation HotSpot 컴파일 방법의 통계 데이터
컬럼명 | 설명 |
Compiled | 실행된 컴파일 태스크의 수 |
Size | 메소드의 바이트 코드의 바이트수 |
Type | 컴파일 타입 |
Method | 컴파일 방법을 특정하는 클래스명과 메소드명. 클래스명에서는, 이름 공간의 단락 문자로서 「.」(은)는 아니고 「/」이 사용된다. 메소드명은, 지정된 클래스내의 메소드이다. 이러한 2 개의 필드의 형식은, HotSpot -XX:+PrintComplation 옵션과 대응하고 있다 |
사용 방법
jstat -gcutil -h5 16543 1000 10
jstat를 -gcutil 옵션을 주고 5개씩 출력마다 헤더를 출력(h5)하고 1초마다 출력하되 10개씩 보여준다.
'개발 이야기 > Java Story' 카테고리의 다른 글
How to find bottleneck in J2EE application (조대협) (0) | 2010.02.11 |
---|---|
JVM GC와 메모리 튜닝 (조대협) (0) | 2010.02.11 |
iBatis 튜토리얼 문서 (0) | 2008.05.15 |
Web Service 이야기 (0) | 2008.05.08 |
Xpath Syntax (0) | 2008.05.03 |