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