GC (Garbage Collection) - JVM

Mark·2021년 10월 27일
0

GC

목록 보기
2/2

학습 목표

  • GC의 동작 과정과 튜닝에 필요한 지식을 학습한다.

GC란?(꼬꼬무 주의..)

  • 동적으로 할당한 메모리 영역 중 사용하지 않은 영역을 탐지하여 해제하는 기능
    • 메모리(Memory) : JVM의 Runtime Data Area 영역을 의미하며 주로 Stack과 Heap 영역을 관리한다.
      • Stack:
        정적으로 할당한 메모리 영역 > 원시 타입의 데이터 값과 함께 할당하며
        Heap영역에 생성된 Object 타입의 데이터 참조값 할당된다.
      • Heap:
        동적으로 할당한 메모리 영역 > 모든 Object 타입의 데이터가 할당되며
        Heap영역의 Object를 가리키는 참조 변수가 Stack에 할당된다.
        • Object Class는 모든 클래스의 최상위 클래스

GC가 왜

GC 분석

jstat -gcutil -h20 -t PID 2000 3000

gcutil : gcutil 수행
h20 : 20라인 마다 header
-t : time stamp 찍음(JVM이 스타트 된 이후의 시간)
PID : ps -ef | grep java > PID 확인
2000 : interval(ms단위) 2초
3000 : count

실행 결과

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

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

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

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

YGC : Young 세대의 GC 이벤트 수

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

FGC : 풀 GC 이벤트 수(Full GC -> Major GC)

GCT : 가베지 콜렉션 총 시간


Reference

profile
지적인 힘이 부족하면 나의 불행을 확대 해석한다. 지적인 힘을 기르자!

0개의 댓글