미스터 역마살

JVM GC 모니터링 본문

IT/기타

JVM GC 모니터링

Mr. YeokMaSsal 2020. 1. 12. 11:04
728x90
반응형

JVM에 Garbage Collector 의 모니터링에 대해 알아보자

 

jstat

jstat은 HotSpot JVM에 있는 모니터링 도구이다. jstat 이외에 HotSpot JVM 모니터링 도구로는 jps와 jstatd가 있다. Java 애플리케이션을 모니터링할 때에는 이 세 개의 도구를 모두 사용해야 할 경우도 있다.

jstat은 GC 수행 정보를 보는 기능만 제공하지는 않는다. 클래스로더 수행 정보나 Just-in-Time 컴파일러 수행 정보 등도 jstat으로 알 수 있다. 여러 정보를 얻을 수 있지만 이 글에서는 GC 수행 정보 모니터링에 대해서만 알아보겠다.

jstat은 $JDK_HOME/bin 디렉터리에 있다. 커맨드 라인에서 디렉터리를 지정하지 않고 바로 java 명령어나 javac 명령어를 실행할 수 있다면 jstat도 바로 실행할 수 있다.

1. 모니터링하고자 하는 프로세스의 ID를 확인

명령어 : ps -ef | grep java

2. jstat 명령어 수행

명령어 : jstat -gcutil -h20 -t 7251 2000 3000

-> gcutil : gcutil에 대해서 수행

-> h20 : 20라인마다 header 찍음

-> -t : time stamp 찍음 (JVM이 스타트 된 이후의 시간)

-> 7251 : 프로세스 ID

-> 2000 : interval (ms단위) 2초

-> 3000 : count

3. 각각의 항목 설명

  • S0 : Survivor 영역 0의 사용률(현재의 용량에 대한 퍼센티지)

  • S1 : Survivor 영역 1의 사용률(현재의 용량에 대한 퍼센티지)

  • E : Eden 영역의 사용률(현재의 용량에 대한 퍼센티지)

  • O : Old 영역의 사용률(현재의 용량에 대한 퍼센티지)

  • P : Parameter 영역의 사용률(현재의 용량에 대한 퍼센티지)

  • YGC : Young 세대의 GC 이벤트 수

  • YGCT : YOUNG 세대의 가베지 콜렉션 시간

  • FGC : 풀 GC 이벤트 수

  • GCT : 가베지 콜렉션 총 시간

 

GC 관련 JSTAT 옵션

 

 

아래는 내가 참고했던 사이트 들이다.

 

- GC는 어떻게 동작하나?
https://mirinae312.github.io/develop/2018/06/04/jvm_gc.html

 

- JSTAT 으로 JVM Heap Memory 모니터링 하기
http://blog.naver.com/PostView.nhn?blogId=solvage&logNo=10038025715

 

 

 

728x90
Comments