'Java jstat로 메모리 모니터링'에 해당되는 글 1건

  1. 2012.05.08 Java jstat로 메모리 모니터링
01.JAVA/Java2012. 5. 8. 15:03
반응형

출처 : http://5dol.tistory.com/182

우선 간단히 확인하면 아래처럼 나온다. jstat -옵션 -pid -시간 하면 된다.
ex) ~]jstat -gc 16543 1000

저건 pid 16543(java)를 1초에 한번씩 결과값을 보여달란거다. 

pid는 ps -efw | grep java로 알아내면 된다. 

~] jstat --help

 invalid argument count
Usage: jstat -help|-options
       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

Definitions:
  <option>      An option reported by the -options option
  <vmid>        Virtual Machine Identifier. A vmid takes the following form:
                     <lvmid>[@<hostname>[:<port>]]
                Where <lvmid> is the local vm identifier for the target
                Java virtual machine, typically a process id; <hostname> is
                the name of the host running the target Java virtual machine;
                and <port> is the port number for the rmiregistry on the
                target host. See the jvmstat documentation for a more complete
                description of the Virtual Machine Identifier.
  <lines>       Number of samples between header lines.
  <interval>    Sampling interval. The following forms are allowed:
                    <n>["ms"|"s"]
                Where <n> is an integer and the suffix specifies the units as
                milliseconds("ms") or seconds("s"). The default units are "ms".
  <count>       Number of samples to take before terminating.
  -J<flag>      Pass <flag> directly to the runtime system.



옵션은 다음과 같다.

 옵션명내용 
 class 클래스 로더의 동작에 관한 통계 데이터
 compiler HotSpot Just-in-Time 컴파일러의 동작에 관한 통계 데이터
 gc 가베지 컬렉트된 heap의 동작에 관한 통계 데이터
 gccapactiy 세대마다의 용량과 대응하는 영역에 관한 통계 데이터
 gccause 가베지 콜렉션 통계 데이터의 개요 (-gcutil 와 같다)와 직전 및 현재 (적용 가능한 경우)의 가베지 콜렉션 이벤트의 원인
 gcnew New 세대의 동작에 관한 통계 데이터
 gcnewcapacity New 세대의 사이즈와 대응하는 영역에 관한 통계 데이터
 gcold Old 세대 및 Permanent 세대의 동작에 관한 통계 데이터
 gcoldcapacity Old 세대의 사이즈에 관한 통계 데이터
 gcpermcapacity Permanent 세대의 사이즈에 관한 통계 데이터
 gcutil 가베지 콜렉션 통계 데이터의 개요
 printcompilationHotSpot 컴파일 방법의 통계 데이터

각 옵션에 대한 컬럼에 대한 설명은 다음과 같다.

-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개씩 보여준다.

Posted by 1010