OOM발생시 힙덤프 확인하는 법

고승원·2024년 3월 26일
0

Java

목록 보기
3/3

엑셀 다운로드, 주문 상세 조회 등 다양한 상황에서 heap space OOM이 발생한다.

현재 서버 설정

OOM 발생시 힙덤프 자동 생성

 -XX:+HeapDumpOnOutOfMemoryError                //OOM 발생시 힙덤프 생성
 -XX:HeapDumpPath=/usr/local/tomcat5/dumps      //힙덤프 생성 경로

본인은 tomcat경로/bin/catalina.sh에 다음과 같이 추가
CATALINA_OPTS="$CATALINA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/melchi/Desktop"

힙 덤프 분석

분석 툴은 intellij도 되고, visualVM등 다양하게 된다. 가장 많이 사용하고, 가장 많은 정보를 주는 eclipse MAT을 사용해보자.

intellij

visualVM

MAT

1. MAT 다운로드

이클립스 홈페이지에서 다운로드 합니다.

2. 힙덤프 분석

파일 - 열기 - 힙덤프

완료

다운로드 하며 겪은 에러 모음

  1. An error has occured

위의 에러와 함께 MemoryAnalyzer 가 안열린다.

이 블로그를 참조하여 MemoryAnalyzer를 Applications로 드래그 해줍니다.

  1. the jvm shared library does not contain the jni_createjavavm symbol. / jvm is not suitable for this product.

java 환경변수가 제대로 설정이 안된 경우이므로

JAVA_HOME이나 VM옵션을 수정하면 됩니다.

  1. 위의 방법이 모두 안되는 경우

jdk 17 이상 써야하는거로 알고있습니다.

저같은 경우는 temurin 17을 새로 다운받아 해결했습니다.

  1. 힙덤프 분석중 OOM

메모리 할당하는 방법을 통해 여유롭게 메모리를 할당합니다.

profile
봄은 영어로 스프링

0개의 댓글