엑셀 다운로드, 주문 상세 조회 등 다양한 상황에서 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
이클립스 홈페이지에서 다운로드 합니다.
파일 - 열기 - 힙덤프
완료
An error has occured
위의 에러와 함께 MemoryAnalyzer 가 안열린다.
이 블로그를 참조하여 MemoryAnalyzer를 Applications로 드래그 해줍니다.
the jvm shared library does not contain the jni_createjavavm symbol.
/ jvm is not suitable for this product.
java 환경변수가 제대로 설정이 안된 경우이므로
JAVA_HOME이나 VM옵션을 수정하면 됩니다.
jdk 17 이상 써야하는거로 알고있습니다.
저같은 경우는 temurin 17을 새로 다운받아 해결했습니다.
메모리 할당하는 방법을 통해 여유롭게 메모리를 할당합니다.