본문 바로가기
반응형

 

 

Analysis Tool for Java Garbage Collector 켜서 GC Log 읽혀주면 처음 뜨는 창은 다음과 같음

(개인 테스트 정보가 있어 가렸습니다)


이 GC Log 에서 나름 지켜볼만한 항목은 

 

- Number Of Object Requests larger than 10 M bytes 항목 (10M 이상 넘는 객체들이 얼마나 왔는지)
  > 10M 넘는 객체들은 일반적이지 않음
- Longest Garbage Collections 
  > GC 시간이 오래 걸렸으니 주의깊게 살펴보는게 좋고 해당 시간 전후로 어떤 일이 있어났는지 확인해보는게 좋음

 


전체적인 통계치나 평균치도 한번쯤 보는게 좋다.
우클릭하면 GC 로그를 분석한 표 / 그래프를 확인할 수 있음



표 출력시 위와 같고 순서는 내 임의대로 조절했음
해당 GC Log 는 Gencon GC 이며, young Old 영역대신 Nursery, Tenured

순서대로
   1) AF (Allocation Failure) : 할당 실패 
    2) GC GC 했다는거
    3) Needed : 어떤 객체가 들어왔는지 용량 표기 (위에 보면 32B부터 8M 까지 다양함)
    4) Free Tenured(Before) -> Free Tenured(After) : 일반적인 GC 의 Old 영역이라고 생각하면 됨.

        이곳이 많이차면 Major GC 가 발생함
        위 표에서 살펴보면 Major GC 시 수행하는 Mark 항목이 측정될 때, Tenured 영역의 변화를 찾아 볼 수 있음
    5) Total, Used Tenured (Before->After) :전체영역, 사용중인 영역
         - 전체영역을 표시하는 이유는 GC 수행 뒤에 해당 영역이 모자라거나 넘친다 느끼면 영역조절을 유동적으로 하는               경우가 있음
    6) Free Nursery(Before) -> Free Nursery(After) : Young 영역의 빈 공간이라고 볼 수 있음. 이곳이 가득차건 모자랄 

        경우 Minor GC 를 통해 공간을 비우거나 Old 영역으로 객체를 옮김
    7) AF Completed : GC 수행 후 할당까지 완료
    8) since : 전 AF 와의 차이(시간)
    9) Mark : old 영역으로 이동된 객체들 중 살아있는 객체를 식별하는 시간
    10) Sweep : Old 영역의 객체에서 참조되지 않는 객체를 식별하는 시간
    11) Compact : 필요 없는 객체를 지우고 살아 있는 객체를 한 곳으로 모으는 시간

 



그래프


그래프에서 자주 보는건 위에 체크된 Used Tenured 와 GC Complete 라고 한다.
Tenured 항목을 살펴보는건 GC 중 오래걸리는 Major GC가 Tenured 영역에 따라 실행되기 때문임



728x90
반응형

한걸음 한걸음

개인적인 기록