본문으로 건너뛰기

Out of memory 에러는 어떻게 해결하나요?

💡 요약 정리

  • 이 오류는 Java 애플리케이션(JVM 메모리)이 부족할 때 발생합니다.
  • 톰캣 로그 tomcat/logs/catalina.out에서 에러 메시지를 먼저 확인하세요.
  • 메모리 절감을 위해 불필요한 라이브러리 삭제와 소스 코드 최적화를 진행하세요.
  • 더 큰 메모리가 필요하면 상위 사양으로 변경해 JVM 메모리를 확장하세요.
  • 메모리 부족이 지속되면 톰캣이 중지되거나 구동 실패가 발생할 수 있습니다.

1. 증상과 원인

  • JVM 메모리가 부족해 톰캣이 중지되었거나, 톰캣 구동이 정상적으로 되지 않을 수 있습니다.
  • 로그 파일에서 아래와 같은 에러가 기록됩니다.
java.lang.OutOfMemoryError:
  • 에러 위치 확인:
    • 로그 경로: tomcat/logs/catalina.out

JVM 메모리는 Java 애플리케이션이 사용하는 실행 메모리입니다. JSP 호스팅 상품별로 JVM 메모리 할당량이 다릅니다.

JSP 호스팅 상품별 JVM 메모리 할당 표
  • 각 서비스(상품) 등급에 따라 JVM 메모리 용량이 다르게 책정됩니다.

2. 해결 방법

2.1 로그로 에러 메시지 확인

  • tomcat/logs/catalina.out 파일에서 Out of memory 관련 메시지를 확인합니다.
  • 대표 에러:
    • java.lang.OutOfMemoryError:

주의: 에러가 반복되면 톰캣 서비스가 중단되거나 재기동 시 구동 실패가 발생할 수 있습니다.

2.2 메모리 사용량 줄이기(권장)

  • 불필요한 라이브러리 파일(사용하지 않는 .jar 등)을 삭제합니다.
  • 메모리 사용량이 큰 기능(예: 대용량 캐싱, 대규모 컬렉션 유지)을 점검하고 소스 코드를 최적화합니다.
  • 배치/크론 작업 등 동시 실행으로 메모리 피크가 커지는 경우, 실행 시점 분산을 검토합니다.

2.3 상위 사양으로 변경하여 JVM 메모리 확장

  • 더 큰 JVM 메모리가 필요하면, 나의 서비스 관리 > 호스팅관리 > 연장/변경/추가옵션 > 변경신청 경로에서 상위 사양으로 변경하여 JVM 메모리를 확장하세요.
    • 나의 서비스 관리 > 호스팅관리 > 연장/변경/추가옵션 > 변경신청

상위 사양으로 변경 시 JVM 메모리 용량이 함께 증가하므로, Out of memory 오류 해결에 효과적입니다.


3. 추가 안내

  • 상품별 JVM 메모리 한도 내에서 운영되므로, 애플리케이션 구조와 라이브러리를 정기적으로 점검해 메모리 사용을 관리하세요.
  • 운영 중 트래픽 증가나 기능 확장으로 메모리 수요가 늘어난 경우, 사양 변경을 검토하세요.