본문 바로가기

Memory3

Heap Dump 분석 - Jmap & Eclipse Memory Analyzer(MAT) Java Application을 개발하고 운영하다 보면 메모리 누수 즉, OutOfMemoryError를 겪는 경우가 있다. 그 중에서도 힙 메모리 공간이 부족해서 생기는 에러인 java.lang.OutOfMemoryError: Java heap space이 발생했을 때 HeapDump 분석을 하는 방법에 대해서 정리한다. Heap Dump 분석 - Jmap & Eclipse Memory Analyzer(MAT) java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError 예외는 메모리 누수 상황이 발생했을 때 발생하며 그 중에서도 Java heap space 예외는 JVM 내 힙 공간이 부족하여 생기는 예외이다. 힙은 서버를 구동할 때 .. 2023. 3. 17.
자바 -Xms -Xmx 힙 메모리 설정 Jar 파일을 실행할 때 여러 옵션들을 줄수가 있는데 그 중에서도 힙메모리 관련 설정인 -Xms와 -Xmx 옵션에 대해서 정리한다. 자바 -Xms -Xmx 힙 메모리 설정 -Xms와 -Xmx -Xms와 -Xmx 옵션은 Jar 파일을 실행할 때 초기 할당 메모리와 최대 할당 메모리를 지정하는 옵션이다. 간혹 -Xms 옵션을 초기 할당 메모리가 아닌 최소 할당 메모리로 잘못 알고 있는 경우가 있는데 최소가 아닌 초기 할당 이다. 만약 다음과 같이 설정을 했다고 가정해보자. -Xms2048m -Xmx4096m 다음과 같이 옵션을 주고 jar 파일을 실행하게 되면 초기 힙 메모리 사이즈가 2048MB로 설정되고 최대는 4096MB로 설정이 된다. 테스트를 위해서 인텔리제이에서 자바 애플리케이션을 실행할 때 옵션.. 2023. 3. 14.
VisualVM을 통한 원격 서버 도커 내 JVM 성능 모니터링 메모리 관련 이슈가 발생하여 (java.lang.OutOfMemoryError: Java heap space) 원인 분석을 위해 VisualVM을 사용하였고 해당 내용을 정리한다. OutOfMemoryError: Java heap space 가 발생한다면 힙 메모리의 사이즈를 늘리면 해결은 할 수 있겠지만 근본적인 원인을 해결하는 것은 아니기에 해당 방법은 추천하지 않는다. OOME 발생 시 메모리 관련 분석 툴 중에서는 VisualVM / Jmap / Eclipse Memory Analyzer 등이 있는데 그 중에서도 JVM을 실시간으로 모니터링을 할 수 있고 heap 덤프도 제공하는 툴인 VisualVM을 사용하기로 했다. 기본적으로 로컬 환경에서 분석하는 방법은 해당 툴이 알아서 인식하기에 따로 설.. 2023. 3. 4.