본문 바로가기
반응형

-------------------------------------------------------------------------------------

현재 블로그 이사 하였습니다.

https://100sy.co.kr/

와서 더 많은 자료 확인부탁드려요

-------------------------------------------------------------------------------------

 

 

GC (Garbage Collecor) 을 보려면 Log 분석은 필수다.

 

Garbage Collector (GC) 에대해 (참고)
    - JVM이 자체적으로 더 이상 사용하지 않는 메모리를 자동 해제해 줌
    - 일반적으로 참조계수 확인을 통해 해제
        > 참조계수를 확인하고, 객체를 해제하는 과정에서 GC는 Heap영역에 대한 Lock이 발생하며,

           이로 인해 JVM이 멈추는 현상이 발생하게 됨    
    - GC가 수행하는 역할은 규칙적이고 일정하게 발생하는 것은 아님
        (어플리케이션의 패턴과 메모리의 크기에 따라 수행빈도와 처리시간이 다르다)

 

>> GC Log 에 Java Heap 메모리의 사용패턴과 GC의 수행패턴을 확인할 수 있는 정보가 기록됨

 

 

그럼 언제 GC Log 분석이 필요할까? 

주로 OOM이 발생하는 경우 (Out Of Memory Error)
- OOM이 발생하는 경우는 Heap메모리가 부족한 경우
메모리 leak으로 인한 OOM / 순간적으로 과도한 메모리 할당으로 발생하는 OOM 등...

 


GC Log가 제공하는 정보는 다음과 같다.


1. 메모리 사용패턴 (MeMory leak of Memory 사용량 급증)
2. GC 수행 횟수
3. GC 수행 시간

으로 추론이 가능한 Heap 메모리 사용률, GC 수행 패턴에 대한 정보가 있겠다.

 

 

GC Time/HeapSize 추이 그래프


Heap Size가 증가하게 되면 평균 Scanvenge GC에 대한 시간도 같이 증가하고, GC횟수는 감소한다.
Heap 메모리 사용에 문제가 없는 시스템이라면 HeapSize에 따라 GC Time, GC횟수는 달라진다.
HeapSize에 대한 GC Count*GC 시간이 가장 효율적인 부분이 적정 HeapSize.

 

-------------------------------------------------------------------------------------

현재 블로그 이사 하였습니다.

https://100sy.co.kr/

와서 더 많은 자료 확인부탁드려요

-------------------------------------------------------------------------------------

728x90
반응형

'IT 공부 > Java' 카테고리의 다른 글

[Java] JFR (Java Flight Recorder)  (0) 2024.12.11

한걸음 한걸음

개인적인 기록