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 영역에 따라 실행되기 때문임
'IT 공부 > Java' 카테고리의 다른 글
[JavaScript] 카테고리 이동 JavaScript 로 구현해보기 (LocalStorage) (0) | 2024.06.18 |
---|---|
[JavaScript] 메뉴 카테고리 JavaScript 로 구현하기 (LocalStorage) (0) | 2024.06.14 |
[Java] GC Log 에 관하여 (0) | 2024.03.19 |
[Java] JMX (Java Management Extensions) (0) | 2024.03.08 |
Selenium 기본 정리 (0) | 2022.01.05 |