본문 바로가기
관리자

Programming-[Backend]/Spring

[TIL] Spring Java GC, OOM, JVM Heap dump - Memory Analyzer, pmd

728x90
반응형

OOM, GC

  • 스프링 빈은 GC 대상이 되지 않는다.
  • Collection 타입의 변수를 static으로 설정 후 프로그래밍 로직상 제거해주는 로직이 없다면 JVM Heap Memory가 계속 쌓이면서 에러가 날 수 있다.

JVM

  • JVM Heap Dump를 뜨는 방법이 있고, AWS S3에 쌓을 수 있다.
  • JVM Heap Dump를 분석하는 도구들이 있다. eclipse의 Memory Analyzer 활용
    • Heap Dump 파일을 업로드하면 메모리를 많이 사용한 변수들을 순위 별로 잡아내준다.

정적 분석 도구로 pmd 같은 것들을 적용하면 ci flow에 적용하여 미리 OOM이 날 수 있는 부분들을 체크해볼 수 있다.

  • Pod 로드 시 JVM Option상 -XX DirectMemory 지정값은 통상 Xmx 값의 1/10으로 잡는다.
728x90
반응형