CHAP 14. 잘라 놓은 메모리 단면 분석하기

자바 트러블슈팅: scouter를 활용한 시스템 장애 진단 및 해결 노하우를 챕터 14을 요약한 내용입니다.

scouter를 사용하여 메모리 문제 진단하기

scouter를 이용하여 메모리의 상태를 모니터링할 수 있는 그래프는 다양하다. 메뉴에서 Collector → Tomcat(혹은 Java)을 선택한 상태에서 메모리와 관련된 메뉴들은 다음과 같다.

GC 관련

  • GC Time : 특정 시간 동안 총 GC를 수행하는 데 소요된 시간

  • GC Count : 특정 시간 동안 총 GC를 수행한 횟수

힙 관련

  • Heap Used : 각 JVM에서 사용한 힙 메모리의 크기

  • Heap Memory : 각 JVM에 할당된 힙 메모리의 크기와 사용한 힙 메모리의 크기

참고로 자바 8 이상을 사용할 경우 permanent 영역은 존재하지 않기 때문에 관련 그래프를 볼 필요는 없다. 만약 메모리 릭이 발생한다면

  • GC Time은 급격히 증가하고

  • GC Count도 급격히 증가하며

  • Heap Memory 그래프는 할당된 부분 근처에서 지속해서 요동을 치며 올라갔다 내려갔다를 반복할 것이다.

기본적인 습관을 가지자

어떤 서버를 새로 모니터링한다면, 이 메모리 사용 현황과 GC를 수행하는 데 소요되는 시간 등을 모니터링하는 것은 가장 먼저 해야 하는 작업 중 하나다. GC가 얼마나 소요되는지, 메모리가 부족한 상황인지를 확인하지 않으면, 어느 순간 장애가 발생했을 때 메모리가 큰 걸림돌이 될 수 있기 때문에 기본적으로 확인하는 습관을 가져야만 한다.

Last updated